本文主要介绍docker-machine用法的详细说明,通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面跟边肖学习。
Docker-machine是Docker提供的官方docker管理工具。
Docker-machine可以轻松做到:
在Windows和MAC平台上安装并运行docker
构建和管理多个docker主机
建立一个群体集群
win环境下安装的virtualbox,virtualbox安装的centos7,网络模式下的NAT+hostonly。
ip:192.168.56.102(仅限主机)
1。安装Docker-Machine:
curl-Lhttps://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname-s`-`uname-m`>/tmp/docker-machine&& chmod+x/tmp/docker-machine&& sudocp/tmp/docker-machine/usr/local/bin/docker-machine2。检查docker-机器版本:
#docker-machineversion [root@docker~]#docker-machineversion docker-machineversion0.13.0,build9ba6da93。在centos7中创建机器:
[root@localhost~]#docker-machinecreate-dvirtualboxdefault CreatingCA:/root/.docker/machine/certs/ca.pem Creatingclientcertificate:/root/.docker/machine/certs/cert.pem Runningpre-createchecks... Errorwithpre-createcheck:"VBoxManagenotfound.MakesureVirtualBoxisinstalledandVBoxManageisinthepath"但是它报错了,以为virtualbox安装的centos7环境支持virtualbox驱动,结果发现环境安装支持virtualbox驱动。
使用virtualbox驱动需要安装virtualbox,Ubuntu的解决方案是:
所以采用通用驱动,详细介绍官网:https://docs.docker.com/machine/drivers/generic/
[root@localhost~]#docker-machinecreate-dgeneric--generic-ip-address=192.168.56.102--generic-ssh-key~/.ssh/id_rsa--generic-ssh-user=根虚拟机
运行创建前检查...
创建计算机...
(vm)导入SSH密钥...
正在等待机器运行,这可能需要几分钟...
正在检测创建的实例的 *** 作系统...
等待SSH可用...
创建机器时出错:检测 *** 作系统时出错:等待SSH可用时重试次数过多。最后一个错误:超过了最大重试次数(60次)
-generic-ip-address=192.168.56.102:此处的IP指的是这台机器。如果您需要为其他远程docker主机安装它,您可以将其更改为其他docker主机IP(这里是本地创建的docker-machine)
仍然报告一个错误,这是因为docker-machine在为这台机器创建机器时也需要ssh验证:
将密码发送给自己,然后再次继续创建机器:
[root@localhost~]#docker-machinecreate-dgeneric--generic-ip-address=192.168.56.102--generic-ssh-key~/.ssh/id_rsa--generic-ssh-user=rootvm Runningpre-createchecks... Creatingmachine... (vm)ImportingSSHkey... Waitingformachinetoberunning,thismaytakeafewminutes... Detectingoperatingsystemofcreatedinstance... WaitingforSSHtobeavailable... Detectingtheprovisioner... Provisioningwithcentos... Copyingcertstothelocalmachinedirectory... Copyingcertstotheremotemachine... SettingDockerconfigurationontheremotedaemon... CheckingconnectiontoDocker... Dockerisupandrunning! ToseehowtoconnectyourDockerClienttotheDockerEnginerunningonthisvirtualmachine,run:docker-machineenvvm最后,机器制造成功。
检查对接机:
要查看虚拟机的环境变量:
[root@localhost~]#docker-machineenvvm exportDOCKER_TLS_VERIFY="1" exportDOCKER_HOST="tcp://192.168.56.102:2376" exportDOCKER_CERT_PATH="/root/.docker/machine/machines/vm" exportDOCKER_MACHINE_NAME="vm" #Runthiscommandtoconfigureyourshell: #eval$(docker-machineenvvm)加载环境变量:
使用ssh登录到机器:
[root@localhost~]#docker-machinessh--help Usage:docker-machinessh[arg...] LogintoorrunacommandonamachinewithSSH. Description: Argumentsare[machine-name][command] [root@localhost~]#docker-machinesshvm Lastlogin:SatNov417:55:532017from192.168.56.102 [root@vm~]#现在开始在本地环境中创建一个容器:
然后远程ssh到docker-machine:
您可以看到docker主机和docker-machine主机中的容器id是相同的
docker-machine可以用来安装docker和创建容器
以上是在本地为自己创建一台机器,现在为远程docker主机创建一台docker-machine:
环境:centos7,192.168.101.14,Docker安装在vmware和docker-machine下,为这台Docker主机创建一台机器,192.168.56.102:
(两个IP转发不同,所以可以访问(vm下nat的静态IP为
1.首先,验证192.168.101.14和主机192.168.56.102之间的ssh连接:
2.创建机器:
[root@docker~]#docker-machinecreate-dgeneric--generic-ip-address=192.168.56.102--generic-ssh-key~/.ssh/id_rsa--generic-ssh-user=rootdefault CreatingCA:/root/.docker/machine/certs/ca.pem Creatingclientcertificate:/root/.docker/machine/certs/cert.pem Runningpre-createchecks... Creatingmachine... (default)ImportingSSHkey... Waitingformachinetoberunning,thismaytakeafewminutes... Detectingoperatingsystemofcreatedinstance... WaitingforSSHtobeavailable... Detectingtheprovisioner... Provisioningwithcentos... Copyingcertstothelocalmachinedirectory... Copyingcertstotheremotemachine... SettingDockerconfigurationontheremotedaemon... CheckingconnectiontoDocker... Dockerisupandrunning! ToseehowtoconnectyourDockerClienttotheDockerEnginerunningonthisvirtualmachine,run:docker-machineenvdefault执行环境变量并进入机器环境:
[root@docker~]#docker-machineenvdefault [root@docker~]#eval$(docker-machineenvdefault)3.检查创建的机器:
您可以看到在192.168.101.14环境中为远程主机192.168.56.102创建的机器。
4.创建容器:
现在检查远程主机是否创建了容器:
[root@localhost~]#dockerps-a couldnotreadCAcertificate"/root/.docker/machine/machines/default/ca.pem":open/root/.docker/machine/machines/default/ca.pem:nosuchfileordirectory错误报告原因:
因为我刚刚在192.168.56.102上为自己设置了机器,所以我保留了前一台机器的环境变量。虽然现在已经删除了,但是我设置了环境变量,取消了刚刚设置的环境变量:
然后再检查一遍:
可以发现远程主机的容器已成功创建。
现在192.168.101.14上存在映像centos_nginx:v4,但是远程主机192.168.56.102没有这个映像。现在创建一个容器,看看远程主机能否创建成功?
然后在远程主机上检查它:
您可以看到两台主机的镜像是同步的,容器也是同步的。
下面vm的docker可以在virtualbox下为docker创建容器
,更本地的可以通过docker-machine为云等其他环境创建容器
在此之前,192.168.101.14的图像都没有了。这是因为设置了机器环境变量:
执行上述 *** 作,取消机器的环境变量,返回到原始环境:
[root@docker~]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE centos_initv1383ff350244326hoursago448MB centos_nginxv86f792dc07c352daysago464MB centos_nginxv79e875385d6be2daysago464MB centos_nginxv6959fdf4d42882daysago464MB centos_nginxv55c11313066862daysago464MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhcv46c5128aaff052daysago464MB 192.168.101.14:5000/centos_nginxv46c5128aaff052daysago464MB centos_nginxv46c5128aaff052daysago464MB centos_nginxv30e49a2c0562f2daysago464MB centos_nginxv22031faf8894a2daysago464MB centos_nginxv178d18f16e7573daysago464MB registrylatest2ba7189700c89daysago33.3MB ubuntulatest747cb2d60bbe3weeksago122MB centoslatest196e0ce0c9fb7weeksago197MB如果需要返回机器环境,只需继续执行机器环境变量。这样,本地和远程镜像和容器就被很好地隔离了。
关于docker-machine用法的详细解释这篇文章就到这里了。有关docker-machine用法的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)