我是docker的新手,曾尝试用docker机器创建docker主机。
目前,我在试用环境中使用VirutalBox。
当我用docker mahine创建docker主机时,默认情况下它会在VirtualBox上用Boot2Docker创建VM。但我想在Virtualbox上用Ubuntu 15.10创建一个docker主机。
有可能使用docker机器在VirtualBox上创建基于Ubuntu的docker主机吗?
OP没有描述他们是如何使用通用驱动程序来解决问题的,所以下面是我的操作方法,以防有人感兴趣:
- 获取Ubuntu服务器ISO
- 在VirtualBox中创建一台计算机。我把我的名字叫做"Ubuntu模板",因为我想在本地学习Swarm,所以我想要一台能够在更长的初始设置后复制并快速获得后续机器的机器
- 在设置中为计算机启用桥接网络而不是NAT
- 启动机器并使用ISO安装Ubuntu。在安装过程中,它将为您提供一个安装OpenSSH的选项,请选择该选项。它还会要求您创建一个新用户。我叫我的"ubuntu",密码是"ubuntu"。您将使用此用户几次,因此请将凭据设置为易于记住的内容
- 安装后,切换到根目录:
sudo su
- 使用
passwd
将root用户的密码更改为易于记忆的密码 - 生成密钥:
ssh-keygen
- 使您刚才生成的密钥获得授权:
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
- 编辑文件
/etc/ssh/sshd_config
并用"PermitRootLogin"更改行,使其读取PermitRootLogin yes
- 重新启动SSH以激活更改:
service ssh restart
- 运行
ifconfig
并记下机器的IP - 打开主机上的终端
- 运行(替换计算机的IP):
ssh root@10.10.10.89 'cat ~/.ssh/id_rsa' > ~/.ssh/docker_test
- 运行:
ssh root@10.10.10.89 'cat ~/.ssh/id_rsa.pub' > ~/.ssh/docker_test.pub
- 运行(回VM)
shutdown now
- 在VirtualBox中,克隆模板计算机(选中复选框以重新初始化MAC地址)。我把我的名字命名为ubuntu-1
- 启动新的虚拟机并运行
echo 'ubuntu-1' > /etc/hostname
,然后运行reboot
。只有当你要用同一个模板创建更多的机器时,这才是必要的,然后你会把它们命名为ubuntu-1、ubuntu-2等等 - 运行
ifconfig
查找克隆机器的IP - 在主机上运行:
docker-machine create --driver generic --generic-ip-address 10.10.10.90 --generic-ssh-key ~/.ssh/docker_test ubuntu-1
这可能需要几分钟的时间才能完成(主要是在"安装docker"步骤),但你应该有一台可以工作的基于Ubuntu的docker机器。您可以通过运行docker-machine use ubuntu-1
然后运行docker run hello-world
来验证它是否工作
它比使用Boot2Docker更复杂,但在初始设置之后,它应该是非常可行的。我还没有对它做太多的工作,我只是通过运行hello world验证了它似乎是有效的,所以可能会有更多的问题,就像Docker经常遇到的那样。
额外提示:VirtualBox允许您在无头模式下运行机器。在初始设置并允许通过SSH进行root访问之后,如果必要的话,无头运行机器并通过SSH连接到它们可能会更方便,并且您可以关闭VB的GUI,机器现在像在后台运行服务一样运行。
有可能使用docker机器在VirtualBox上创建基于Ubuntu的docker主机吗?
是的,但不是直接使用docker机器,它只依赖于基于TinyCore的30 Mo的linux发行版。
你可以尝试启动一个成熟的Ubuntu虚拟机,它遵循Ubuntu的常规docker安装。