如何通过将docker-machine与VirtualBox结合使用来创建基于ubuntu的Docker主机?

tak*_*abe 5 docker docker-machine

我是Docker的新手,并尝试使用docker-machine创建docker主机。

目前,我将VirutalBox用于试用环境。

当我使用docker-mahine创建docker主机时,默认情况下,它使用VirtualBox上的Boot2Docker创建了VM。但是我想在Virtualbox上使用Ubuntu 15.10创建一个docker主机。

是否可以使用docker-machine在VirtualBox上创建基于Ubuntu的Docker主机?

Raf*_* G. 7

OP没有描述他们如何使用通用驱动程序解决问题,因此这是我的处理方法,以防有人感兴趣:

  1. 获取Ubuntu Server ISO
  2. 在VirtualBox中创建一台计算机。我之所以称其为“ Ubuntu模板”,是因为我想在本地学习Swarm,所以我想要一台能够在较长的初始设置后能够复制并快速获得后续机器的机器。
  3. 在设置中为计算机启用桥接网络而不是NAT
  4. 启动机器并使用ISO安装Ubuntu。在安装过程中,它将为您提供安装OpenSSH的选项,请选择该选项。它还会要求您创建一个新用户。我用密码“ ubuntu”称呼我的“ ubuntu”。您将使用此用户几次,因此请将凭据设置为易于记住的方式
  5. 安装后,切换到根目录: sudo su
  6. 将root的密码更改为易于记忆的方式 passwd
  7. 生成密钥: ssh-keygen
  8. 使刚刚生成的密钥经过授权: cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
  9. 编辑文件,/etc/ssh/sshd_config并使用“ PermitRootLogin”更改行,使其读取PermitRootLogin yes
  10. 重新启动SSH以激活更改: service ssh restart
  11. 运行ifconfig并记下机器的IP
  12. 打开主机上的终端
  13. 运行(使用机器的IP替换):
    ssh root@10.10.10.89 'cat ~/.ssh/id_rsa' > ~/.ssh/docker_test
  14. 跑:
    ssh root@10.10.10.89 'cat ~/.ssh/id_rsa.pub' > ~/.ssh/docker_test.pub
  15. 运行(返回虚拟机) shutdown now
  16. 在VirtualBox中,克隆模板计算机(选中复选框以重新初始化MAC地址)。我命名为ubuntu-1
  17. 启动新的虚拟机echo 'ubuntu-1' > /etc/hostname,然后运行reboot。仅当您要从同一模板创建更多计算机时才需要,然后将其命名为ubuntu-1,ubuntu-2等。
  18. 运行ifconfig以找出克隆机器的IP
  19. 在您的主机上运行:
    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进行根访问后,无头运行计算机并在必要时通过SSH连接到计算机可能会更加方便,并且可以关闭VB的GUI,并且计算机现在像在后台运行一样。


Von*_*onC 2

是否可以使用 docker-machine 在 VirtualBox 上创建基于 Ubuntu 的 docker 主机?

是的,但不能直接使用 docker-machine,它仅依赖于基于 TinyCore的 30 Mo linux 发行版。

您可以尝试启动一个功能齐全的 Ubuntu VM,其中遵循 Ubuntu 的常规 docker 安装