docker-docker-machine的使用

首先确保您已经正确安装docker-machine,具体安装过程请参考官方教程

docker-machine是什么?docker-machine是一个可以在虚拟机上部署docker环境的工具。低版本的windows和mac系统,不能安装Docker Desktop for **,可以通过docker-machine配和hyperv或者virtualbox来部署docker环境。

本文的演示环境是windows系统,故使用hyperv虚拟化技术。

开启hyperv虚拟化
打开控制面板>启用或关闭windows功能,勾选Hyper-v。
在这里插入图片描述
重启并进入bios,开启Intel Virtual Technology,再重启。

创建虚拟网络
打开Hyper-V管理器,找到虚拟交换机管理器,并打开
在这里插入图片描述
创建一个【外部】虚拟交换机,取名为Primary
在这里插入图片描述
下载iso镜像
为避免安装过程速度缓慢,可以使用迅雷等工具把镜像先下载下来。发布地址为github发布地址,下载最新的版本。
下载完成后,复制到~.docker\machine\cache目录下。
以管理员身份打开cmd或powershell创建docker环境

//指定镜像和交换机创建虚拟机
docker-machine create -d hyperv --hyperv-boot2docker-url ~\.docker\machine\cache\boot2docker.iso --hyperv-virtual-switch  Primary xxl
//创建好之后,查看虚拟机信息
docker-machine env xxl
//得到下面输出:
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.1.106:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\zhang\.docker\machine\machines\xxl"
$Env:DOCKER_MACHINE_NAME = "xxl"
$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "true"
# Run this command to configure your shell:
# & "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env xxl | Invoke-Expression
//执行最下面的指令配置shell(不同的shell命令不同,需要用env命令确认)
& "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env xxl | Invoke-Expression
//然后就可以登录虚拟机了
docker-machine ssh xxl
//或者直接执行命令
docker-machine ssh xxl "docker info"		//查看虚拟机docker环境

主机和虚拟机之间传输文件
虚拟机部署好docker环境之后,怎么向虚拟机中传输文件呢?

docker-machine提供了scp指令,但是发现并不好用。考虑到一般的云服务器都是通过winscp连接的,那么虚拟机能不能通过winscp连接呢?

首先通过用户名和密码是不行的。因为没有找到boot2docker镜像里的用户名和密码信息。

那么ssh指令也是没有用户名和密码,那是通过什么连接的呢?答案是秘钥。

首先下载winscp,然后进行安装。

打开winscp,点击左下角的【工具】,点击【运行PuTTYgen】
在这里插入图片描述
下面是PuTTYgen工具的界面:
在这里插入图片描述
点击load加载docker-machine创建的私钥:
在这里插入图片描述
在这里插入图片描述
其中key comment和passphrase可以自定义。
点击【Save private key】把秘钥保存成winscp可以识别的ppk格式。
在这里插入图片描述
然后回到主界面【新建站点】,填写虚拟机IP(通过docker-machine ip xxl获取),填写用户名docker,点击右下角的【高级】,选择【验证】,在【秘钥文件】一栏选择上一步保存的ppk格式的秘钥,点击【确定】完成配置。
在这里插入图片描述
回到主界面,【保存】并【登录】。可以发现,winscp顺利登录进入虚拟机。

其他常用指令

//查看配置
docker-machine config xxl
//查看环境
docker-machine env xxl
//登录或者执行命令
docker-machine ssh xxl
//重新生成TSL证书
docker-machine regenerate-certs xxl
发布了22 篇原创文章 · 获赞 0 · 访问量 1045

猜你喜欢

转载自blog.csdn.net/ssehs/article/details/104092619