使用docker-machine管理远程(目标)主机上的docker

安装docker-machine

$ curl -L https://github.com/docker/machine/releases/download/v0.14.0/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 进行远程安装前我们需要做一些准备工作:
1.    在目标主机上创建一个用户并加入sudo 组
2.    为该用户设置 sudo 操作不需要输入密码
3.    把本地用户的 ssh public key 添加到目标主机上

比如我们要在远程主机上添加一个名为 nick 的用户并加入 sudo 组:
$ sudo adduser nick
$ sudo usermod -a -G sudo nick


然后设置 sudo 操作不需要输入密码:
$ sudo visudo

把下面一行内容添加到文档的最后并保存文件:
nick   ALL=(ALL:ALL) NOPASSWD: ALL

最后把本地用户的 ssh public key 添加到目标主机上:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
# 注意:此命令如果用sudo执行,~代表/root;如果不用sudo,~代表/peter/home

这几步操作的主要目的是获得足够的权限可以远程的操作目标主机。    


在远程主机上安装virtual box

在本地主机上安装virtualbox,如已安装可忽略

$ sudo apt install virtualbox

在本地主机上,向远程主机host1安装virtualbox 
$ docker-machine create --engine-registry-mirror="https://s0iielsh.mirror.aliyuncs.com" --driver virtualbox host1

可能出现的异常:
Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
此错误有两处需要注意:
1、BIOS需要开起硬件虚拟化支持
2、不要用Oracle VM virtaulbox创建虚拟机,Oracle VM virtaulbox不支持嵌套虚拟机。本文用的是VMware Workstation,所以是在 虚拟机->设置 里设置处理器的虚拟化引擎首选模式为“Intel VT-x/EPT 或AMD-V/RVI”及“虚拟化Intel VT-x/EPT 或AMD-V/RVI(V)”


列出安装好的远程虚拟机
$ docker-machine ls 
	NAME    ACTIVE   DRIVER      STATE     URL                         SWARM   DOCKER       ERRORS
	host1   -        virtualbox   Running  tcp://192.168.99.100:2376          v17.06.0-ce  
查看虚拟机IP等信息
$ docker-machine env host1  

操作远程主机

用本机docker客户端指向host1的docker
$ eval $(docker-machine env host1)


查看远程主机上的docker信息
$ docker info


创建docker中的网络
$ docker network create dongnao_net
  
安装并运行gitlab
$ docker run -d --net=dongnao_net --publish 1443:443 --publish 18080:80 --name gitlab --restart always gitlab/gitlab-ce:latest
端口18080,通过你的虚拟机IP取访问就可以看到页面了  


安装并运行rabbitmq
$ docker run -d --net=dongnao_net --name rabbitmq --publish 5671:5671 --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 rabbitmq:management
连接的端口是 5672
web控制台是 15672


参考: https://www.cnblogs.com/sparkdev/p/7044950.html




你可能感兴趣的:(使用docker-machine管理远程(目标)主机上的docker)