容器集群的入门
docker machine是docker官方编排(orchestration)项目之一,负责在多种平台上快速安装docker环境。
docker machine支持在常规linux操作系统、虚拟化平台、openstack、公有云等不同环境下安装配置docker host.
docker machine 项目基于go语言实现,目前在github上的维护地址:
openstack偏向python,docker compose是用来做编排的,可以控制多容器。
server1 cd /usr/local/bin/ ls mv docker-machine-Linux-x86_64-0.16.2 docker-machine chmod +x docker-machine
本机上 iptables -t nat -I POSTROUTING -s 172.25.0.0/24 -j MASQUERADE virsh start vm3 virt-manager
server3 hostnamectl set-hostname server3 vim /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart network
ps ax netstat -antlp
驱动使用的是通用性。
虚拟化的连接驱动。
作为管理端,需要创建免密 server1 ssh-keygen ssh-copy-id server3 #对server3做一次免密 ssh server3 没有任何的秘钥 docker-machine create --driver generic --generic-ip-address=172.25.0.3 server3 server3 netstat antlp cd /etc/yum.repos.d/ ls cat /var/log/messages server1
宿主机上重新开一个apache cd /content/ 目录上 ls ll -d /var/www/html/ 在默认发布目录中放一个脚本。 mv get-docker.sh /opt/ wget https://get.docker.com/ ll vim index.html mv index.html get-docker.sh 一下行数大概在456 vim get-docker.sh
server1 docker-machine create --driver generic --engine-install-url "http://172.25.0.250/get-docker.sh" --generic-ip-address=172.25.0.3 server3 docker-machine ls 如果server3已经存在了 docker rm server3 docker-machine create --driver generic --engine-install-url "http://172.25.0.250/get-docker.sh" --generic-ip-address=172.25.0.3 server3
server3 这台机器必须会联网 cd /etc/yum.repos.d/ ls 生成官方的yum园 yum repolist 脚本中自动创建的yum源可能有问题 rm -f docker-ce.repo yum clean all
server2 cd /etc/yum.repos.d/ ls #除了有官方的,还有依赖性。 yum repolist rpm -q docker-ce
宿主机 cd /var/ftp/pub/docs/ cd docker/ ls cd 20/ ls createrepo . #这个命令是专门用来创建yum源的,尤其是自己落的第三方yum源,.表示将当前目录检索为yum源,相当于检索当前的rpm包生成索引信息。 ls cd repodata/ cd .. ls 将其中需要用到的包手工下载下来。
server1 vim /etc/yum.conf
怎么要知道下载哪些包
server2 scp Centos-7.repo docker-ce.repo server3:/etc/yum.repos.d/ 正常情况下是不必拷的,这个只是为了说明包是怎么确定的。
server3 yum install docker-ce n
keepcache是在安装的时候把缓存保持下来不删。
这样的话包就有了,在本地做个yum源,然后通过apache发布出来。
宿主机 cd /content/ ls vim docker-ce.repo 这些都是阿里云做的yum源
如果不想用自己做的yum源安装的话,可以用之前配置过的。
cat Centos-7.repo
server3 vim Centos-7.repo cat docker-ce.repo ls vim get-docker.sh 修改脚本
确定这个文件是可以被访问的
server3 rm -f Centos-7.repo docker-ce.repo
server1 vim /etc/yum.conf docker-machine rm server3 docker-machine create --driver generic --engine-install-url "http://172.25.0.250/get-docker.sh" --generic-ip-address=172.25.0.3 server3
server3 ps ax ls cat docker-ce.repo ls rm -f Centos-7.repo ls
server1 docker-machine ls
server3 docker info 到此docker引擎都运行了,但是内核的参数需要自己改。还会有报错,是警告。会对网络有影响,其他的没什么 netstat -antlp 会开启一个2376的端口,用于远程连接。
server1 cd /etc/sysctl.d/ ls scp docker.conf server3:/etc/sysctl.d/
server3 sysctl --system ps ax
再演示一遍,如果已经装过了的,会直接跳过。
宿主机 virsh start vm4 这个机子和server3同样操作
server1 cd /etc/sysctl.d/ ls scp docker.conf server3:/etc/sysctl.d/ docker-machine create --driver generic --engine-install-url "http://172.25.0.250/get-docker.sh" --generic-ip-address=172.25.0.2 server2
在内网中建一个自己的yum源
之前指定的文件,依然连接的是阿里云的。
宿主机上 cd /content/ ls vim docker-ce.repo
server1 cd /etc/sysctl.d/ ssy-keygen ssy-copy-id server4 docker-machine create --driver generic --engine-install-url "http://172.25.0.250/get-docker.sh" --generic-ip-address=172.25.0.4 server4
server4 cd /etc/yum.repolist.d/ ls cat docker-ce.repo
建立一个内网的源,并通过apache发布出来了。
添加的时候是通过脚本来完成的。
server1 docker-machine ls #会把后端的机器连接开启一个远程连接端口。 docker-machine env server2 eval $(docker-machine env server2)#虽然是在server1上,但是这个时候就在server2上了 docker ps #用docker敲命令的时候实际上敲的是远程 docker images rpm -qa|grep bash
按上以上的包
注销之后,重新登进来 cd .docker/machine/ ls cd certs/ ls
server2 systemctl status docker cd /etc/systemd/system/docker.service.d/ ls cat 10-machine.conf cd /etc/docker/ ls
以下操作是为了显示当前在哪个节点
server1 下载这些脚本之后退出重新登录 cd /etc/bash_completion.d/ ls
安装bash文件
cd vim ~/.bashrc 加入上述那一行代码 source .bashrc cd docker-machine env server2 eval $(docker-machine env server2)
回到server1,则退出重新登陆 docker-machine config server3#查看配置信息 docker-machine scp 复制machine中的文件 docker-machine ssh 连接machine docker-machine rm 删除machine



