Docker学习笔记(十)
对于多个host的管理,如果按照单一host的docker安装等操作,则非常麻烦。
所以我们需要新的工具Docker Machine。
安装方式如下:
curl -L https://github.com/docker/machine/releases/download/v0.9.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 version查看安装成功与否
docker-machine ls查看当前docker-machine服务
为了在machine上面方便操作各个host,需要修改BASH的PS1用来区分各个host。
安装rz/sz命令,sudo apt-get install lrzsz。用于上传下载。
https://github.com/docker/machine/tree/master/contrib/completion/bash,下载其中三个bash脚本,放置到 /etc/bash_completion.d 目录下,注意权限可执行。
修改$HOME/.bashrc,添加如下:
source /etc/bash_completion.d/docker-machine-wrapper.bash source /etc/bash_completion.d/docker-machine-prompt.bash source /etc/bash_completion.d/docker-machine.bash alias docker-machine='docker-machine.exe' # DOCKER_BASE是存放docker machine相关文件的路径,包括可执行文件 export DOCKER_BASE=/e/_Share/repo/docker_machine # 添加docker-machine可执行文件的路径到PATH变量 export PATH=$PATH:$DOCKER_BASE/bin:/d/Program\ Files/Oracle/VirtualBox # 创建本地虚拟机时,使用如下路径存放虚拟机文件。默认是%UserProfile%/.docker/machine可能会塞满你的C盘 export MACHINE_STORAGE_PATH=$DOCKER_BASE/_machines # 修改命令行提示符 PS1='[\u@\h \W$(__docker_machine_ps1)]\$'
source ~/.bashrc,生效。
这样我们就能通过eval $(docker-machine env host1)方式切换到不同host上执行docker命令了。
如果需要多个host操作,需要ssh远程无密码登录,方法如下:
1、由于linux安装默认只安装ssh客户端,没有安装ssh服务端。所以需要在每台机器上安装ssh服务端:
安装方法,sudo apt-get install openssh-server。
修改/etc/ssh/sshd_config文件
修改项:
PermitEmptyPasswords yes
PermitRootLogin yes,service sshd restart重启生效。
2、host1上ssh-keygen,生成公钥私钥对,远程拷贝ssh-copy-id -i ~/.ssh/id_rsa.pub root@(Docker Machine)。使得远程免秘钥。可以使用ssh root@ip进行免密登录验证。
创建docker主机:
docker-machine create --driver generic --generic-ip-address=192.168.240.128 host1。创建docker主机。但是在创建过程中出现问题,远程登录后在host1上执行apt-get update出现错误,导致后续安装失败,解决方法:http://blog.csdn.net/zzq123686/article/details/77454066。
命令:
docker-machine env (hostname)可以查看docker主机的环境变量。
eval $(docker-machine env hostname)可以转到对应docker主机状态下,这样可以使用对应docker命令就和在对应主机本地上一样使用。 docker-machine upgrade host1 host2 ,可以多个主机同时更新docker版本。docker-machine config host1 ,可以查看对应docker daemon配置。docker-machine stop/start/restart是对于machine系统而言,而非控制docker容器的启停。docker-machine scp可以完成不同host之间拷贝,

浙公网安备 33010602011771号