Docker Machine的使用

  前面两篇文章(《Asp.Net Core 发布到 Docker(Linux Centos 虚拟机,使用Dockerfile)》 《Docker Compose的使用》),简单介绍了Dockerfile和Compose的使用,主要是基于教学使用(或者快速上手Docker)。如果想要深入理解还是需要去看Docker官网。接下来介绍时,我会尽量详细一些。

目录:

  一、Virtualbox网络设置

  二、Docker Machine 简介和安装

  三、Docker Machine Driver 的选择

  四、创建 Machine 

  五、总结

一、虚拟机Virtualbox网络设置

1.1 配置

  软件配置:Windows 10(主机)+ Virtualbox(虚拟机)+ Centos 7 系统(虚拟机系统) + Docker

  虚拟机数量:2(使用相同的Virtualbox网络配置)

1.2 Virtualbox的网络连接方式

  参考:https://blog.csdn.net/bifengmiaozhuan/article/details/79887692

     https://www.cnblogs.com/jpfss/p/8616613.html

  关键点:

  

1.3 选择网络连接方式

  目标:

  • 主机和虚拟机互通
  • 虚拟机之间互通
  • 虚拟机上网

  根据要实现的目标,只有桥接模式符合(如果考虑安全性并且有多张网卡,可以使用网络模式NAT+hostonly)。

二、Docker Machine 简介和安装

2.1 简介

  官方介绍:https://docs.docker.com/machine/overview/

  Docker Machine 是一种配置新资源的最快且最简单的方式,并能让容器在其上运行。

  Docker Machine 能够创建服务器、在服务器上安装Docker ,以及配置本地Docker 客户端,让它们能够访问服务器。Docker Machine 自带了很多驱动,能够适配大部分主流的云服务提供商(包括AWS、谷歌的Google Compute Enginer、微软Azure、Digital  Ocean)以及VMWare 和VirtualBox。摘自《Docker开发指南》

2.2 安装

  使用Docker github官方介绍进行安装(https://github.com/docker/machine/releases/

  例如:linux 安装命令

$ 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 &&
    sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

  查看是否安装成功

docker-machine version

 如上图显示,则安装成功。

三、Docker Machine Driver的选择

3.1 官方介绍

  参考:https://docs.docker.com/machine/drivers/

3.2 Driver 选择

  根据虚拟机或者具体环境选择不同的driver(这里使用的是Generic

四、创建 Machine

  参考:https://docs.docker.com/machine/drivers/generic/

4.1 生成SSH秘钥,执行以下命令(一路Enter键即可)

ssh-keygen

4.2 认证

#192.168.0.7是目标主机IP(这里是另外一台虚拟机IP,可以使用ifconfig命令查看IP)
#root是登录目标主机的登录账户(如果不使用root账户,那其他账户最好是管理权限(docker需要root权限),并且不需要输入sudo命令)
#生成的过程中需要输入root账户的密码
ssh-copy-id root@192.168.0.7 

4.3 创建 machine(需要目标主机是运行状态)

$ docker-machine create \    #创建命令
  --driver generic \   #选择的driver
  --generic-ip-address=192.168.0.7 \    #需要连接的目标主机IP(这里是另外一个虚拟机)
  --generic-ssh-key ~/.ssh/id_rsa \    #使用的证书
  vm1  #machine名称

注意:命令需要执行一段时间(需要在目标主机上安装Docker),不要停止(即不要按Ctrl+C键)

4. 4 执行环境变量,执行以下命令

docker-machine env vm1
eval $(docker-machine env vm1)

注意:这一步骤必须执行,否则目标主机不会同步命令(主机创建容器,但是目标主机不会创建)。

4.5 查看

执行以下命令,查看刚才创建的machine(需要目标主机是运行状态)

docker-machine ls

正常显示:

  

注意:

  如遇到以下错误(no roote to host),可以参考:https://www.jianshu.com/p/96aebba5d3cc

   需要执行以下命令:

#通过ssh命令登录到目标主机(这里指另外一台虚拟机)
docker-machine ssh vm1 
#在防火墙开放指定端口
firewall-cmd --zone=public --add-port=2376/tcp --permanent 
#重启firewall防火墙
firewall-cmd --reload 
#退出目标主机(这里指另外一台虚拟机) 
exit

4.6 创建一个redis容器,并且在目标主机上进行验证  (按照以下命令进行执行和对比)

#创建容器myredis
docker run -d -p 6379:6379 --name myredis redis
#查看运行中的容器
docker ps
#使用ssh进入目标主机
docker-machine ssh vm1
#查看目标主机中正在运行的容器
docker ps
#退出目标主机
exit

举例:

至此,创建machine成功。

五、总结

5.1 如果在虚拟机上使用docker-machine,需要注意虚拟机软件(VMare/Virtualbox)的网络连接方式

5.2 需要根据具体的情景,进行docker machine driver的选择

5.3 需要目标主机防火墙(不建议直接关闭)的端口配置

 

参考资料:

https://www.cnblogs.com/jsonhc/p/7784466.html

转载于:https://www.cnblogs.com/zhizihuakai/p/11440115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Machine是一个开源项目,它提供了一种简便的方法来在各个操作系统上安装和管理Docker引擎。它的主要目的是在不同的计算机上安装、配置和管理Docker引擎,从而让用户更便捷地进行容器化应用的开发和部署。 使用Docker Machine,我们可以通过简单的命令来创建和管理虚拟机,这些虚拟机可以托管我们的Docker容器。Docker Machine提供了一些预定义的虚拟机驱动程序,如VirtualBox、VMware、AWS等,但也允许用户自定义驱动程序来满足自己的需求。 Docker Machine的可执行文件是一个命令行工具,通过它我们可以执行各种操作,包括创建虚拟机、启动、停止、删除等。我们可以使用该工具快速地在本地或远程主机上安装和配置Docker引擎,而无需手动进行复杂的设置。 对于开发者和系统管理员而言,Docker Machine的执行文件非常实用。它可以大大简化搭建和管理Docker环境的过程,特别是在多台机器上进行容器化应用开发和部署时。通过Docker Machine,我们可以轻松地创建和配置多个虚拟机,将它们连接到Docker集群,从而使得容器的管理更加便捷和高效。 总之,Docker Machine的可执行文件为我们提供了一个简单而强大的工具,使得Docker容器的部署和管理变得更加容易。无论是在本地还是远程主机上,使用Docker Machine都能够为我们提供一种方便的方式来管理Docker引擎和容器化应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值