Docker 100 问 系列四:Docker Machine 相关问题

原文作者:蜗牛(QQ2107553024)
原文转自: https://blog.lab99.org/post/docker-2016-07... (网站空间已过期)

《Docker 100 问》系列文章:

  1. 装完 Docker Toolbox 后发现下载镜像速度太慢,是不是需要修改什么配置文件?
  2. 如何在 Docker Toolbox 中创建的 default 虚拟机中添加DOCKER_OPTS之类的配置?
  3. docker-machine 创建的主机怎么直接 ssh 进去?改了 root 密码好像也没用?
  4. docker-machine 使用 -d generic 时,指定用户 –generic-ssh-user 后发现要 sudo 密码,结果报错退出,这是怎么回事?

1. 装完 Docker Toolbox 后发现下载镜像速度太慢,是不是需要修改什么配置文件?

安装 Docker Toolbox 时,安装程序会使用 docker-machine 为你创建一个名为 default 的虚拟机:

docker-machine create -d virtualbox default

这个虚拟机没有加任何参数,因此对于拥有伟大的墙的国内网络来说,有些不方便使用。所以最简单的做法是在安装完 Docker Toolbox 后,删掉默认的虚拟机,然后重新创建该虚拟机,创建时加入有中国特色的配置。

docker-machine rm default
docker-machine create -d virtualbox
--engine-registry-mirror https://jxus37ac.mirror.aliyuncs.com
--engine-insecure-registry 192.168.99.0/24
--engine-storage-driver overlay2
default

删除 default 虚拟机的时候要注意,其中镜像、容器等内容都会被删除。

2. 如何在 Docker Toolbox 中创建的 default 虚拟机中添加DOCKER_OPTS之类的配置?

其实在最初创建该docker host时,就可以利用 docker-machine 指定引擎配置参数,如果不要紧,可以直接rm掉这个虚拟机,重新建立。

如果不方便 rm 掉这个虚拟机,可以 docker-machine ssh 进入这个虚拟机,然后修改 /var/lib/boot2docker/profile 文件,修改里面的 EXTRA_ARGS 参数即可。

3. docker-machine 创建的主机怎么直接 ssh 进去?改了 root 密码好像也没用?

docker-machine 创建的主机,会遵循安全最佳实践,因此一般不会允许 root 登录,而且一般不会允许密码登录,只允许密钥登录(也就是很多国内文章称为的免密登录,其实并非免密)。

因此,使用密钥 ~/.docker/machine/machines/<机器名>/id_rsa 登录即可。

ssh -i ~/.docker/machine/machines/default/id_rsa
-o UserKnownHostsFile=/dev/null
-o StrictHostKeyChecking=no
docker@$(docker-machine ip default)

这个例子中连接的是 default 这个机器,需要连接其它的机器换成别的即可。另外的两个 -o 的参数是让其不要校验服务器密钥,这当然是不安全的,不过这里只是试验的虚拟机,所以没关系。

4. docker-machine 使用 -d generic 时,指定用户 –generic-ssh-user 后发现要 sudo 密码,结果报错退出,这是怎么回事?

你应该再仔细看看 generic 的官方文档:https://docs.docker.com/machine/drivers/ge...

里面说的很清楚,默认用户是 root,但如果通过 –generic-ssh-user 指定其它用户的话,该用户必须拥有无密码sudo的能力,换句话说,就是在 sudoers 文件中对该用户配置 NOPASSWD。

(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!