本篇博文主要介绍如何使用docker-machine给远程主机安装并管理docker
以下配置,需要在root账号下操作,否则在为远程主机创建docker时,会出现不必要的错误,特别重要,特别重要,特别重要!!!
1.远程主机需要安装ssh server
使用命令ps -ef | grep sshd
检查是否安装并启动 ssh server服务
root@S102:/home/ubuntu# ps -ef | grep sshd
root 7276 1 0 18:47 ? 00:00:00 /usr/sbin/sshd -D
root 47672 7052 0 19:38 pts/1 00:00:00 grep --color=auto sshd
如上结果已经启动ssh server,否则使用以下命令安装ssh server
apt-get update
apt-get install openssh-server
systemctl start sshd.service
2.配置远程主机的root账号允许ssh远程登录
#vi /etc/ssh/sshd_config
PermitRootLogin yes #修改此项为允许root登录
#service ssh restart
3.配置客户端能免密登录远程主机
在客户端只输入IP地址,不输入密码,就可登录到远程主机,可参考《Docker进阶之路(七):配置docker-machine免密登录》
4.客户端已经安装docker-machine
参考《Docker进阶之路(六):安装docker-machine》
在root账号下,使用命令给远程主机安装docker
docker-machine create -d generic --generic-ip-address=192.168.130.130 docker01
root@S100:/home/ubuntu# docker-machine create -d generic --generic-ip-address=192.168.130.130 docker01
Running pre-create checks...
Creating machine...
(docker01) No SSH key specified. Assuming an existing key at the default location.
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with ubuntu(systemd)...
Installing Docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env docker01
root@S100:/home/ubuntu#
如上结果,给远程主机192.168.130.130成功安装docker,说明
-d generic
指定驱动为generic
--generic-ip-address
指定远程主机的IP地址
docker01
指定名称为docker01
generic驱动不支持stop,start,kill命令
非常重要一点,要在root账号下执行,否则会出现安装不成功的情况
1.在客户端使用docker-machine ls
,可以看到创建的远程主机
2.在远程主机查看docker是否安装成功
3.使用docker-machine ssh
命令在远程主机执行命令
4.将本地文件Copy到远程主机
docker-machine scp text.txt docker01:/home/ubuntu
5.将远程主机的/home/ubuntu/foo目录挂载到本地的foo目录
docker-machine mount docker01:/home/ubuntu/foo ./foo
6.取消挂载点
docker-machine mount -u docker01:/home/ubuntu/foo ./foo