docker-machine

容器集群的入门
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

docker-machine_第1张图片

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

docker-machine_第2张图片
docker-machine_第3张图片

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源

docker-machine_第4张图片
如果不想用自己做的yum源安装的话,可以用之前配置过的。

cat Centos-7.repo

server3
vim Centos-7.repo
cat docker-ce.repo
ls
vim get-docker.sh 修改脚本

docker-machine_第5张图片
确定这个文件是可以被访问的

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

docker-machine_第6张图片

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

docker-machine_第7张图片

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文件
docker-machine_第8张图片

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

你可能感兴趣的:(docker,容器,linux)