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
[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
server3:
完全干净的主机
(1)将ser3和ser2中的系统版本改为centos,因为前面的脚本指定的如果系统版本是rhel就会退出
[root@server3 ~]# vim /etc/os-release
ID="centos"
[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
[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
[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
[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端口成功添加
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
[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
[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"