说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
文章目录
1、使用docker-machine工具创建虚拟机
说明:除了以上的通过Vagrant工具创建linux虚拟机和Oracle VM VirtualBox创建linux虚拟机以及VMware Workstation创建linux虚拟机以外,还可以通过(mac或者windows)安装docker后自带的docker-machine工具创建linux虚拟机
1.1 查看docker-machine版本
docker-machine version
1.2 使用docker-machine创建名为demo的linux虚拟机
docker-machine create demo
1.3 查看当前运行或者创建好的机器
docker-machine ls
1.4 进入创建好的机器里面
docker-machine ssh demo
1.5 进入创建好的demo虚拟机后,查看docker客户端和服务端版本
docker version
1.6 docker-machine帮助命令
- 如删除虚拟机、停止虚拟机、启动虚拟机、重启虚拟机等等操作,可以使用如下命令查看docker-machine的操作命令
docker-machine --help
2.对比本地docker版本与VM(虚拟机)docker版本
2.1 再次创建一台名为demo2的虚拟机
- 执行 docker-machine create demo2命令
- 查看VBOX中创建好的demo2虚拟机
- 查看正在运行或创建好的虚拟机
2.2 停止所有的虚拟机并查看docker版本
- 停止运行demo虚拟机,然后查看状态
- 执行docker version,也就是查看本地的docker版本
- 停止demo2虚拟机,查看所有创建好的虚拟机状态
- 再次执行docker version命令,只显示出client无法连接到server端
3.本地docker客户端使用VM(虚拟机)服务端
3.1 开启demo虚拟机
- 执行docker-machine start demo命令
3.2 本地docker使用远程服务器端
- 远程进入demo虚拟机
- 查看demo虚拟机中docker版本
- 最关键的一步来了,首先查看本地docker version只看到客户端,将demo虚拟机中的环境变量导出
- 执行以上红框中的命令,将demo的环境变量设置到本地环境中
- 此时,再运行docker version命令,则看到本地docker 使用的是 demo虚拟机中的服务器了
3.3 小结
通过本地docker命令远程管理一个docker machine(docker 机器),在本地只需要安装一个docker client,本地server可以通过docker-machine工具或者vagrant工具去创建一个安装好docker的server即可。
docker-machine工具给我们提供了很多种方式可以远程创建一台安装好docker的虚拟机,以上是通过本地的VBOX driver去创建的远程docker的虚拟机。
4.通过docker-machine在cloud上创建带有docker的机器
4.1 查看官网提供的cloud
- 在docker官网,可以看到提供的远程driver以及第三方driver(阿里云),点击如下图的Provision hosts in the cloud即可查看官方提供的driver
- 通过在本地运行docker-machine create命令在远程的cloud(云)上面去创建一台安装好docker的一台机器,通过DigitalOcean以及Amazon Web Services (AWS)去创建不太方便,毕竟是国外的cloud
4.2 在阿里云上创建安装好docker的机器
说明: 要在cloud(云)上面去创建虚拟机,需要driver支持
4.2.1 阿里云ECS Docker Machine Driver(docker机器驱动程序)安装
首先查看官方支持的driver
而要使用阿里云的driver,则需要点击进入第三方插件
打开后,其实是在github上维护的插件,选择Aliyun ECS点击连接进入即可
下载适合操作系统的二进制文件
然后根据文档,提取donload(下载)的包
以windows为例(直接解压即可)
以linux为例,博主是通过rz命令将下载的aliyunecs_linux包拷贝到centos7虚拟机/usr/local/bin目录下
以mac为例则通过如下命令提取
tar zxvf docker-machine-driver-aliyunecs_darwin-amd64.tgz
接下来是重命名可执行文件,也就是将解压后的文件进行重命名
#Windows
docker-machine-driver-aliyunecs.windows-amd64 => docker-machine-driver-aliyunecs.exe
#Linux
docker-machine-driver-aliyunecs.linux-amd64 => docker-machine-driver-aliyunecs
#Mac
docker-machine-driver-aliyunecs.darwin-amd64 => docker-machine-driver-aliyunecs
博主这里以centos为例演示
然后将该命名后\usr\local\bin\bin目录(因为解压后的文件docker-machine-driver-aliyunecs在bin目录下)的docker-machine-driver-aliyunecs文件移动到\usr\local\bin目录下,并删除\usr\local\bin目录下的bin目录
博主的centos系统安装了docker,但是docker-machine工具需要单独安装,安装文档为:https://docs.docker.com/machine/install-machine/#install-machine-directly,因为在github上下载太慢,博主采用离线方式,也就是博主之前讲的通过迅雷下载地址为:https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-Linux-x86_64,下载好的docker-machine-Linux-x86_64
文件通过rz命令传输到centos /usr/local/bin目录下,然后修改可执行权限并移动到/usr/local/bin/docker-machine目录下
验证docker-machine是否安装成功,执行docker-machine -v命令查看版本
现在验证阿里云ECS的Docker Machine Driver是否安装成功,执行文档中在Aliyun ECS上创建docker实例帮助命令,如果提示命令选项,则表示安装成功
4.2.2 阿里云ECS Docker Machine Driver的使用
-
首先登录进入阿里云官网控制台,搜索访问控制点击进入
-
点击用户,创建用户,选择编程方式,这样就能得到AccessKey ID 和 AccessKey Secret
-
创建成,一定要保持AccessKey ID 和 AccessKey Secret,页面关闭就不在显示了
-
创建完成如下
-
给用户添加权限,使其能够管理ECS
-
打开阿里云 云服务区 ECS,点击管理控制台
-
到如下页面,点击创建云服务器实例
-
到如下页面,选择付费模式以及实例配置场景,右下方就会出现价格,默认付费模式为包年包月
-
如果是选择按流量收费模式,那么就需要账户金额至少100元
-
需要说明三点,如下在阿里云 云服务器ecs创建带有docker的虚拟机的命令中第一点 则是 –aliyunecs-region参数值为服务器地域名,该参数在地址栏后面;第二点就是aliyunecs-instance-type参数值为服务器的实例规格(反正看文档就明白的很);最后一点则是<machine-name>的值为创建云服务器ECS时的实例名称
docker-machine create -d aliyunecs --aliyunecs-io-optimized=<The I/O optimized instance type> --aliyunecs-instance-type=<The instance type to run> --aliyunecs-access-key-id=<Your access key ID for the Aliyun ECS API> --aliyunecs-access-key-secret=<Your secret access key for the Aliyun ECS API> --aliyunecs-region=<Region> <machine-name>
-
切入一个新手小白的问题,以上是让大家通过aliyunecs driver命令来创建ECS实例,不是在页面上直接购买,是通过docker-machine create -d aliyunecs命令来创建实例,不是在页面上创建实例哦,只是给大家说明创建命令的参数,在页面上指的是什么
-
为了让大家跟直观的明白,博主将实际创建命令显示出来,并执行(重点说明,博主账户没有money),所以执行命令提示您的帐户没有足够的余额
docker-machine create -d aliyunecs --aliyunecs-io-optimized=optimized --aliyunecs-instance-type=ecs.sn2ne.large --aliyunecs-access-key-id=<Your access key ID for the Aliyun ECS API> --aliyunecs-access-key-secret=<Your secret access key for the Aliyun ECS API> --aliyunecs-region=cn-qingdao tgshow
4.3 过程叙述
-
如博主账户有足够的钱,就可以使用如上命令创建指定ecs服务器实例,并在实例中安装docker,通过本地执行docker-machine ls就能看到名为aliyunecs的driver了,通过docker-machine ssh tgshow就能远程进入机器中,在host中执行docker version则可以看到客户端及服务器的版本,exit退出ssh远程后,在本地通过docker-machine env tgshow命令,导出云服务器docker环境变量,最后执行eval(docker-machine env tgshow)命令后,在本地执行docker version命令显示出的server端这是阿里云的docker host了
-
如果不想使用阿里云docker host则可以在本地执行docker-machine env –unset命令,最后执行eval(docker-machine env –unset)命令则表示不使用阿里云的docker host而是使用本机的server
-
最后打开阿里云控制台,可以看到创建的实例在运行中,如果你在创建实例时选择的付费模式为按流量收费,则在本地使用docker-machine rm 删除阿里云的机器,并再次进行阿里云控制台检查
评论前必须登录!
注册