概要
docker 1.12版本最大的改变在于集成了docker swarm,在docker engine下提供了 swarm 模式,这里主要说一下docker swarm。
docker engine本身只提供了容器技术,没有解决集群环境下的容器编排和通信。docker swarm是一个容器编排管理工具,docker-engine在1.12版本之后集成了docker swarm,不需要再单独安装。
docker swarm的功能,举个例子,有3台机器都安装了docker环境,称为3台docker节点。那么如何管理这3台docker节点,并把容器以类似于负载均衡的模式分别部署到这3台节点上,并让这些分布在不同节点上的容器之间互相通信呢。这时候需要用到容器编排工具,常用的编排工具有Google开源的kubernetes、apache的mesos、docker公司的swarm。
kubernetes作为Google开源的工具,已经在Google的生产环境运行了多年,功能丰富并且稳定可靠,目前有很多公司都在使用。docker在1.12版本之后内置了swarm模式,把容器编排以核心组件的模式集成到了docker engine中,并借鉴了kubernetes的成功经验。
安装docker
以centos7为例,这里附上官网的安装文档,docker官网实在太慢了。
使用yum安装1.更新yum源,sudo yum update;、。
2.添加docker的yum仓库
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpgEOF
3.安装docker-engine,sudo yum install docker-engine
4.启动docker守护进程,sudo systemctl start docker
docker的安装到这里就结束了,下边说一下在公司内网环境通过代理安装docker需要注意的问题。1.首先让机器能通过代理上网
修改/etc/profile,增加export http_proxy=代理用户名:密码@代理地址:端口
使修改生效,source /etc/profile
2.配置yum使用代理
vim /etc/yum.conf 增加proxy=http://代理用户名:密码@代理地址:端口
经过这两步之后,就可以在内网通过代理安装docker了。
配置docker
打开docker远程管理端口2375,并配置docker hub国内仓库。
1.新建docker配置文件
vim /etc/sysconfig/docker
增加
DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375 --registry-mirror=国内仓库地址"
如果需要通过代理访问还需要增加
HTTP_PROXY=http://代理用户名:密码@代理地址:端口
2.启动docker守护进程时加载配置文件
vim /lib/systemd/system/docker.servic
修改ExecStart配置为
ExecStart=/usr/bin/dockerd $DOCKER_OPTS
在[Service]中增加配置文件路径的配置
EnvironmentFile=-/etc/sysconfig/docker
把配置文件加载路径指定到第一步创建的配置文件/etc/sysconfig/docker
3.重启docker守护进程
sudo systemctl stop docker
sudo systemctl start docker4.检查配置是否生效
ps -ef|grep docker
如果配置生效,会在dockerd进程后边加上刚才配置的参数。
启动swarm模式
只需要在一个docker节点上初始化swarm集群, 其他节点加入这个集群就行了。
选择一台docker节点作为swarm模式的leader,运行
docker swarm init --advertise-addr 主机ip
按照提示信息在其他节点上执行命令加入swarm集群
在leader节点上执行docker node ls 查看节点信息
创建集群网络
新闻热点
疑难解答