Docker基础---Docker三剑客之Docker Machine(自动化部署docker)

Docker Machine概述及搭建
一、什么是docker-machine:
简单来说就是给你快速创建一个docker容器环境的,比如,如果你要给100台阿里云ECS安装上docker,传统方式就是你一台一台ssh上去安装,但是有了docker-machine就不一样了,你可以快速给100台ecs安装上docker。还有就是你要在本地快读创建docker集群环境,总不能一台一台创建虚拟机吧,所以docker-machine可以解决这个问题。

使用Docker Machine的目的:
Docker Machine 使你能够在各种 Linux 上配置多个远程 Docker 宿主机。

二、操作步骤
1、实验前提:

172.25.1.1 server1 docker-machine管理端,装有docker服务
172.25.1.2 server2 有docker服务
172.25.1.3 server3 没有docker服务
172.25.2.250 真机 提供第三方软件仓库

2、docker-machine安装地址:
https://github.com/docker/machine/releases

server1:
(1)安装docker-machine管理端

cp docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine		#下载后更改地址方便调用
chmod +x /usr/local/bin/docker-machine
ssh-keygen
ssh-copy-id server3

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第1张图片
Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第2张图片
(2)创建部署

[root@server1 ~]# docker-machine create --driver generic --engine-install-url "http://172.25.1.250/get-docker.sh" --generic-ip-address 172.25.1.3 server3
[root@server1 ~]# docker-machine ls
NAME      ACTIVE   DRIVER    STATE     URL                     SWARM   DOCKER     ERRORS
server3   -        generic   Running   tcp://172.25.1.3:2376           v19.03.8   

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第3张图片
server3:
完全干净的主机
(1)将ser3和ser2中的系统版本改为centos,因为前面的脚本指定的如果系统版本是rhel就会退出

[root@server3 ~]# vim /etc/os-release
ID="centos"

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第4张图片
(2)创建后自动声称repo文件

[root@server3 ~]# cd /etc/yum.repos.d/
[root@server3 yum.repos.d]# ls
docker-ce.repo  redhat.repo  yum.repo
[root@server3 yum.repos.d]# cat docker-ce.repo 
[docker]
name=docker-ce
baseurl=http://172.25.1.250/docker
gpgcheck=0

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第5张图片
(3)部署成功

[root@server3 yum.repos.d]# rpm -qa | grep docker
docker-ce-cli-19.03.8-3.el7.x86_64
docker-ce-19.03.8-3.el7.x86_64

在这里插入图片描述
在machine主机上操作远程主机
(1)

[root@server1 ~]# docker-machine config server3		#查看server信息
[root@server1 ~]# docker `docker-machine config server3` ps	#在1上操作3
[root@server1 ~]# docker `docker-machine config server3` pull busybox	#在1帮3上拉取
[root@server1 ~]# docker `docker-machine config server3` images

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第6张图片
Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第7张图片
报错

[root@server3 docker]# docker search nginx
Error response from daemon: Get https://index.docker.io/v1/search?q=nginx&n=25: dial tcp: lookup index.docker.io on [::1]:53: read udp [::1]:39842->[::1]:53: read: connection refused
解析和网络没做好

server2虽然安装了docker但是没有配置加密连接
(1)配置server2为分机
server2:

[root@server2 ~]# vim /etc/os-release
ID="centos"
[root@server2 ~]# systemctl status docker
─13789 /usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/doc...
#2376端口成功添加

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第8张图片

server1:

docker-machine rm server2		#删除指令
[root@server1 ~]# docker-machine create --driver generic --engine-install-url "http://172.25.1.250/get-docker.sh" --generic-ip-address 172.25.1.2 server2
[root@server1 ~]# docker-machine ls
NAME      ACTIVE   DRIVER    STATE     URL                     SWARM   DOCKER     ERRORS
server2   -        generic   Running   tcp://172.25.1.2:2376           v19.03.8   
server3   -        generic   Running   tcp://172.25.1.3:2376           v19.03.8   

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第9张图片
(2)切换server主机

[root@server1 ~]# eval $(docker-machine env server2)
[root@server1 ~]# docker-machine ls
NAME      ACTIVE   DRIVER    STATE     URL                     SWARM   DOCKER     ERRORS
server2   *        generic   Running   tcp://172.25.1.2:2376           v19.03.8   
server3   -        generic   Running   tcp://172.25.1.3:2376           v19.03.8   
[root@server1 ~]# eval $(docker-machine env server3)
[root@server1 ~]# docker-machine ls
NAME      ACTIVE   DRIVER    STATE     URL                     SWARM   DOCKER     ERRORS
server2   -        generic   Running   tcp://172.25.1.2:2376           v19.03.8   
server3   *        generic   Running   tcp://172.25.1.3:2376           v19.03.8  

Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第10张图片

部署指定版本的docker
Docker基础---Docker三剑客之Docker Machine(自动化部署docker)_第11张图片
server1:

[root@server1 ~]# docker-machine rm server3
[root@server1 ~]# docker-machine create --driver generic --engine-install-url "http://172.25.1.250/get-docker.sh" --generic-ip-address 172.25.1.3 server3

server3:
docker清除干净,以免影响下次部署

[root@server3 ~]# systemctl stop docker
[root@server3 ~]# yum remove docker-ce
[root@server3 ~]# cd /etc
[root@server3 etc]# rm -fr docker/
[root@server3 etc]# cd /etc/systemd/system/docker.service.d/
[root@server3 docker.service.d]# rm -fr 10-machine.conf 
[root@server3 docker.service.d]# yum remove docker-ce-cli-19.03.8-3.el7.x86_64

真机:

[root@foundation1 html]# vim get-docker.sh
462                                 $sh_c "$pkg_manager install -y -q docker-ce-19.03.5-3.el7 docker-ce-cli-19.03.5-3.el7"

你可能感兴趣的:(运维实战)