Docker网络(二)
前言已经介绍了Docker的镜像和容器,下面主要涉及Docker网络相关知识
Linux网络命名空间#进入一个已经运行的容器docker exec -it 61512b362534 bash#执行ip aip a
会发现有一些接口,这就是这个容器自己的network namespace退出容器,在宿主机执行ip a显示出来的是宿主机的network namespace,这2个network namespace是不一样的再创建第二个容器,2个docker容器的network namespace也是不一样的,他们之前是隔离开的。并且2个容器是可以ping通的
底层原理(1)创建network namespace
#创建2个network namespaceip netns add test1ip netns add test2#删除network namespaceip netns delete test1#查看创建network namespaceip netns list
(2)查看test1、test2的network namespace信息
ip netns exec test ...
Docker的镜像与容器(一)
本文主要涉及Docker镜像、容器相关知识
Docker架构和底层技术Docker提供了一个开发、打包、运行应用的平台Docker Engine将应用和infrastructure分离开
Docker EngineDocker Engine由后台进程(dockerd)、REST API Server、CLI接口(docker)组成
#查看Client、Server、Engine版本docker version#查看docker进程ps -ef | grep docker
底层技术支持(1)Namespaces:做隔离pid,net,ipc,mnt,uts(2)Control groups:做资源限制(3)Union file systems:Container和image的分层
Docker ImageImage里面是一层层的文件系统,即UnionFS(联合文件系统)。每一层文件系统我们都叫一层layer,Image本身是read-only的。构建镜像的时候,每个构建操作都是对一层修改,增加一层文件系统,当你使用Image的时候,你看到的是一个整体,不知道Image到底含有多少文件 ...
Keepalived+Nginx双机热备
Keepalived实现nginx双机热备,实现高可用
安装nginx# docker pull nginx
创建nginx配置文件# vi /home/n1/nginx.conf
nginx.conf配置文件user nginx;worker_processes 1; error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid; events { worker_connections 1024;} http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_byt ...
Docker部署RedisCluster集群
前言我们已经搭建好了数据库集群,下面我们来部署Redis集群。
安装Redis镜像# docker pull yyyyttttwwww/redis
重命名# docker tag yyyyttttwwww/redis redis# docker rmi yyyyttttwwww/redis
创建Redis集群net2网段# docker network create --subnet=172.19.0.0/16 net2
运行Redis容器,并进入容器# docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash# docker exec -it r1 bash
配置Redis节点# vi /usr/redis/redis.conf
修改配置文件中如下信息
#以后台程序运行daemonize yes#开启集群cluster-enabled yes#集群配置文件cluster-config-file nodes.conf#设置超时时间cluster-node-timeout 15 ...
PXC热备份方案
对数据库文件备份是工作中必不可少的环节,常见的数据库备份方式主要是冷备份和热备份方案
冷备份冷备份就是关闭数据库时候的备份方式,通常是拷贝数据文件冷备份是最简单的最安全的一种备份方式但是一般运营过程中不能停止数据库服务来进行数据备份
热备份热备份是在系统运行的状态下备份数据MySQL常见热备份方式是LVM和XtraBackup两种备份方案LVM:linux的分区备份命令,可以备份任何数据库;但是会对数据库加锁,只能读取;而且命令复杂XtraBackup:不需要锁表就可以实现数据备份,而且免费
XtraBackupXtraBackup是由percona提供的一款基于InnoDB的开源免费数据库热备份软件,它支持在线热备份,占用磁盘空间小,能够非常快速地备份与恢复MySQL数据库1.备份过程中不锁表,快速可靠2.备份过程中不会打断正在执行地事务3.备份数据经过压缩,占用磁盘空间小
全量备份和增量备份1.全量备份:备份全部数据。备份时间长,占用空间大。第一次备份要使用全量备份2.增量备份:只备份变化的那部分数据。备份的时间短,占用空间小。后续建议使用增量备份
PXC全量备份创建数据卷# d ...
Docker部署高可用MySQL负载均衡、双机热备
在之前的文章我们已经搭建好了PXC集群,所有的PXC集群节点都是可读可写的,在程序发送请求给数据库时,我们不能把所有的请求全发送给一个PXC节点,对于这种情况,就形成了一个节点负载特别高、性能差,其他节点就显得很空闲,这种情况是我们不希望的。我们希望所有的PXC节点都参与到请求的处理,所以我们就要用到数据库负载均衡技术。
这里我们使用Haproxy来做负载均衡,Haproxy是作为一个请求的转发器,将各个请求均匀分给不同的节点,这样就保证了单个节点负载低、性能好。
然而单点的Haproxy又不具备高可用,一旦Haproxy出现故障,整个程序就无法正常工作了,所以我们必须要做多个Haproxy节点,一个节点挂掉,必须要有其他Haproxy来顶替。因此这里我们使用Keepalived来实现双机热备。
下载镜像# docker pull haproxy
查看镜像# docker images
创建Haproxy配置文件# touch /home/soft/haproxy/haproxy.cfg
Haproxy配置global #工作目录 chroot /usr/local ...
Docker搭建MySQL高可用方案PXC集群
PXC全称Percona XtraDB Cluster,它提供了MySQL高可用的一种实现方案。PXC集群是以节点组成,推荐奇数个节点(至少3个以上),集群中的每个节点都包含完整的数据,并且所有节点都是可读可写的。PXC集群方案能够保证数据的强一致性,当程序向PXC的一个节点提交数据时,该节点先同步其他的节点,如果其他节点同步失败,那么这个提交数据的行为就算失败,只有所有节点都同步成功才返回程序提交数据成功。
下载镜像文件# docker pull percona/percona-xtradb-cluster:5.7.20
查看镜像文件# docker images
修改镜像文件名称# docker tag percona/percona-xtradb-cluster:5.7.20 pxc
删除原来镜像文件# docker rmi percona/percona-xtradb-cluster:5.7.20
创建pxc集群内部网络# docker network create --subnet=172.18.0.0/24 net1
查看内部网络信息# docker inspe ...
使用Github-Pages和Hexo搭建自己的博客
这是一篇使用Github Pages和Hexo搭建博客的详细教程。这是我搭建好自己博客的的第一篇文章,搭建的时候也是通过百度,经过千辛万苦完成的,希望通过我的教程,使更多的同学能够搭建自己的博客。
安装Node.js(1)Node.js下载地址:https://nodejs.org/en/。(2)检验Node.js是否安装成功
安装Git(1)Git下载地址:https://git-scm.com/(2)检验Git是否安装成功,鼠标右键菜单会出现Git GUI Here和Git Bash Here
安装Hexo首先选择一个磁盘,新建一个文件夹(我这里新建了一个weifeng_blog文件夹),用来存储博客相关的文件。进入刚创建的文件夹,鼠标右击,点击Git Bash Here。(1)安装hexo-cli(2)安装hexo部署到git page和deployer
Hexo初始化配置在刚刚创建的文件夹下,再新建一个hexo的文件夹。进入hexo文件夹,鼠标右击,点击Git Bash Here。初始化的过程会比较慢,耐心等待。成功后会发现hexo目录下出现很多文件。
本地查看效果执行hex ...