Docker Machine的使用
1 Docker Machine的作用
Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker,还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。
2 安装 Docker Machine
实验环境:
server1:已安装docker的主机
server2:已安装docker的主机
server3:纯净的主机
(1) mv docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine
(2) 免密登陆 远程主机:ssh-keygen
ssh-copy-id server2 ##server2:部署docker的主机
(3)离线方式创建主机
docker-machine create --driver generic --generic-ip-address 172.25.12.2 server2
- 查看server2的服务和端口号:
netstat -antlp
,开启了docker的2376端口
- 查看docker服务的状态:
systemctl status docker.service
- docker主机上生成的配置文件,docker daemon启用了TLS验证功能,docker-machine已经为其生成好了所需的证书文件
cd /etc/systemd/system/docker.service.d
(4) 管理machine
- 显示访问server2所需的环境变量
docker-machine env server2
- 根据提示执行:
eval $(docker-machine env server2)
,进入server2的主机操作docker
- 在server1上远程操作server2的docker运行容器:
docker run -it busybox
- 查看运行的docker容器:
docker ps
- 在server2上查看正在运行的容器:
docker ps
docker rm -f 854d26ed0aa5
(5) 安装bash脚本,使得行提示符显示操作的docker主机
cd /etc/bash_completion.d/
docker-machine.bash
docker-machine-prompt.bash
docker-machine-wrapper.bash
yum install bash-*
- 编辑shell环境变量的配置文件:
vim /root/.bashrc
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
3 远程主机上安装配置docker
(1) 配置本地的yum源
- 编辑yum的配置文件:
vim /etc/yum.conf
keepcache=1 ##安装完成后保留软件包
yum install docker-ce docker-ce-cli ##下载安装docker-ce docker-ce-cli所需要的包
将下载docker-ce docker-ce-cli所需要的包放到网络仓库
cd /var/cache/yum/ ##进入yum的缓存目录
cp * /var/www/html/docker-ce/
cp * /var/www/html/docker-ce/
- 安装软件:
yum install createrepo -y
- createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据
createrepo .
- 编辑仓库文件:
vim /var/www/html/docker-ce.repo
[docker]
name=docker-ce
baseurl=http://172.25.12.4/docker-ce
gpgcheck=0
(2) 创建主机
- 查看帮助:
docker-machine create --help
wget https://get.docker.com
mv index.html /var/www/html/get-docker.sh ##安装docker的脚本
chmod /var/www/html/get-docker.sh 777
vim /var/www/html/get-docker.sh
- 仓库文件的下载路径
- 创建主机:docker-machine
docker-machine create --driver generic --engine-install-url "http://172.25.12.4/get-docker.sh" --generic-ip-address 172.25.12.3 server3
- 列出所有管理的Docker主机:
docker-machine ls
docker-machine env server3
eval $(docker-machine env server3) ##通过本地的客户端操作远程主机上的 Docker daemon
docker info ##验证server3的docker是否安装成功
cd /etc/sysctl.d/
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
- 重新加载服务:
sysctl --system
- 重启docker服务:
systemctl restart docker.service
- server3的docker安装成功