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之间拷贝,
 

 

posted @ 2017-12-28 14:31  FlyerS  阅读(133)  评论(0)    收藏  举报