Docker---三剑客之一:docker-machine

前言-docker machine简介
Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。Docker Machine 项目基于 Go 语言实现的,支持在常规Linux操作系统、虚拟化平台、openstack、公有云等不同环境下安装配置docker host。


docker machine 作用:更快的添加一个docker节点

实验前准备-->需要4个包:
docker-machine.bash                                                                         
docker-machine-Linux-x86_64-0.16.2                                                           
docker-machine-prompt.bash                                                                   
docker-machine-wrapper.bash                                                                  
*以上包传给server1

server1:

mv docker-machine-Linux-x86_64-0.16.2  /usr/local/bin/docker-machine
chmod +x /usr/local/bin/docker-machine 
systemctl start docker
ssh-keygen 
ssh-copy-id server2
ssh-copy-id server3
docker-machine create --driver generic --generic-ip-address=172.25.70.2 server2

*注意:在执行此条命令的时候server2上/etc/yum.repos.d/CentOS-Base.repo文件里的base和updates中的enabled=0

docker-machine ls  #可以看到连的是server2的2376端口

Docker---三剑客之一:docker-machine_第1张图片Docker---三剑客之一:docker-machine_第2张图片

Docker---三剑客之一:docker-machine_第3张图片

server2中:

netstat -antlp  
#可以看到有一个加密的远程连接的2376端口

Docker---三剑客之一:docker-machine_第4张图片

server1

cd 
l.
cd .docker/machine/certs/  #生成证书的目录
ls  #创建的证书
cd ..
ls
cd machines/
ls
cd server2/
ls

Docker---三剑客之一:docker-machine_第5张图片

server2:

cd /etc/systemd/system/
ls
cd docker.service.d/
ls
cat 10-machine.conf  
#在这个目录下生成的文件【和k8s会有冲突】

Docker---三剑客之一:docker-machine_第6张图片

server1

cd
docker-machine config server2   
#查看打印server2的配置信息

docker-machine env server2     
#获取server2的环境变量

eval $(docker-machine env server2)  

docker info  
#这个时候用的就是server2【可以看到仓库是reg.westos.org】

cd /etc/docker/
ls
cat daemon.json    
#可以看到server1的仓库是阿里云的

Docker---三剑客之一:docker-machine_第7张图片

Docker---三剑客之一:docker-machine_第8张图片

server2:

cd /etc/docker/
cat daemon.json   #server2仓库是reg.westos.org
docker ps

server1:
现在执行的所有指令其实是在server2上运行的

docker images  
#看到的是server2的镜像

docker run -d --name demo nginx   
#在server1上开启一个容器

Docker---三剑客之一:docker-machine_第9张图片

server2:

docker ps #可以看到容器在server2上

server1

docker rm -f demo #删掉容器
*以上执行命令不太直观,不能明显看到在server2上运行

rpm -qa | grep bash  
#需要安装bash扩展

mv *.bash /etc/bash_completion.d/  
#3个bash脚本一定要在这个目录里,不然会报错

cd

vim .bashrc 
  添加:PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '

退出之后,重新登陆server1:

eval $(docker-machine env server2)  
#执行完这个指令后可以明显看到是在server2上运行的

docker images

Docker---三剑客之一:docker-machine_第10张图片

Docker---三剑客之一:docker-machine_第11张图片

添加server3节点(没有安装docker)
真机中:

cd /var/www/html/
curl https://get.docker.com/ -o get-docker.sh   
#要挂载在默认发布目录

vim get-docker.sh 
  注释掉456到460行
  461行添加:
  yum_repo="http://172.25.70.250/docker-ce.repo" #repo这个文件要准备好
ls
vim  docker-ce.repo
cat docker-ce.repo 

Docker---三剑客之一:docker-machine_第12张图片

server1中:

docker-machine create --driver generic --generic-ip-address=172.25.70.3 --engine-install-
url "http://172.25.70.250/get-docker.sh" server3  
#添加server3节点(会自己给server3上下载docker-ce)

docker-machine ls

Docker---三剑客之一:docker-machine_第13张图片

server3:

cd /etc/yum.repos.d/
ls  #会自己出现docker-ce.repo源

 

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