Docker三剑客之Machine

前言

1、Docker Machine 简介

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

2、Docker Machine 实践

2.1 Docker Machine的安装

1.在线安装

 curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine 
 
 chmod +x /tmp/docker-machine #添加可执行权限
 cp /tmp/docker-machine  /usr/local/bin/docker-machine 

 docker-machine version  #查看版本
   docker-machine version 0.16.1, build cce350d7

2.本实验采用下载好的Docker Machine

[root@server1 ~]# ll docker-machine-Linux-x86_64-0.16.1 
-rwxr-xr-x 1 root root 28201440 Jan 28 14:04 docker-machine-Linux-x86_64-0.16.1
[root@server1 ~]# mv docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine
[root@server1 ~]# chmod +x /usr/local/bin/docker-machine

2.2 如何创建我们的Machine

  • 创建流程:
    ssh免密登陆远程主机
    安装docker软件包
    复制证书
    配置docker daemon
    启动docker

  • 创建machine:
    machine指的是docker daemon主机,其实就是在host上安装和部署docker。

  • 创建machine要求免密登陆远程主机:
    #ssh-keygen
    #ssh-copy-id 目标ip

  • 创建主机:(离线安装需要在目标主机提前安装好docker-ce)
    #docker-machine create --driver generic --generic-ip-address=1.2.3.2 server2

做免密
在这里插入图片描述
在这里插入图片描述

server1上执行docker-machine create --driver generic --generic-ip-address=1.2.3.2 server2并到server2上看有没有2376端口被监听
在这里插入图片描述
查看docker主机(server1)上生成的配置文件

[root@server2 ~]# cd /etc/systemd/system/docker.service.d
[root@server2 docker.service.d]# ls
10-machine.conf
[root@server2 docker.service.d]# cat 10-machine.conf

[root@server1 server2]# docker-machine config server2

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.3 如何远程控制我们创造的machine

  • 管理machine:
    连接远程docker主机时需要执行以下命令,但不方便:
    #docker docker-machine config server12 ps
    #docker-machine env server2 显示访问server2所需的环境变量:
    根据提示执行:eval $(docker-machine env server2),可以直接切入目标主机。但是操作不是很明显,会让人误以为还是server1。

在这里插入图片描述

为了直观感受到已经切换到server2,这里我们进行以下操作

方法:
安装bash脚本,使得行提示符更加的人性化:
	# base=https://raw.githubusercontent.com/docker/machine/v0.16.1
	# for i in docker-machine-prompt.bash docker-machine-wrapper.bash    docker-machine.bash
	      do
	      wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d
	      done
	# vim ~/.bashrc
	      PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '



对server1的操作:
[root@server1 ~]# yum list bash-* 
bash.x86_64   
bash-completion.noarch     ##一定要先安装       
bash-doc.x86_64    

[root@server1 bash_completion.d]#  pwd
/etc/bash_completion.d
[root@server1 bash_completion.d]# ll *.bash
-rwxr-xr-x 1 root root 12211 Jan 28 14:18 docker-machine.bash
-rwxr-xr-x 1 root root  1469 Jan 28 14:18 docker-machine-prompt.bash
-rwxr-xr-x 1 root root  1525 Jan 28 14:18 docker-machine-wrapper.bash


[root@server1 ~]# vim ~/.bashrc 
[root@server1 ~]# cat ~/.bashrc | grep PS1
 PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '

[root@server1 ~]# eval $(docker-machine env server2)
[root@server1 ~ [server2]]# docker images 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.4 若受控主机没有安装docker服务(docker-ce)

若受控主机没有安装docker服务(docker-ce),是台准新机怎么办,这里以server3(1.2.3.3)为例子。

2.4.1 配置本地源

[root@westos html]# vim docker-ce.repo
[root@westos html]# cat docker-ce.repo 
[docker]
name=docker-ce
baseurl=http://1.2.3.200/docker-ce
gpgcheck=0

在这里插入图片描述

2.4.2 配置免密

在这里插入图片描述

2.4.3 下载安装脚本,并修改脚本为本地yum源

[root@server1 ~]# wget https://get.docker.com     ##下载脚本,并修改脚本为本地yum源
[root@server1 ~]# ll index.html 
-rw-r--r-- 1 root root 13857 Dec  9 12:25 index.html
[root@server1 ~]# mv index.html get-docker.sh
[root@server1 ~]# vim get-docker.sh 
 修改如下(行数):
 412 yum_repo="http://1.2.3.200/docker-ce.repo"
 471 fi
 472 # install the correct cli version first
 473 #if [ -n "$cli_pkg_version" ]; then
 474 #       $sh_c "$pkg_manager install -y -q docker-ce-cl    i-$cli_pkg_version"
 475 #fi
 476 $sh_c "$pkg_manager install -y -q docker-ce" 


[root@server1 ~]# scp get-docker.sh root@1.2.3.200:/var/www/html   ##发送到真机默认发布目录

2.4.4 保证server3可以联网,然后一条命令即可安装

docker-machine create --driver generic --engine-install-url "http://1.2.3.200/get-docker.sh" --generic-ip-address 1.2.3.4 server4

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述



Docker三剑客之Machine到这就结束鸟,就这~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值