如何使用带有VirtualBox的docker-machine创建基于ubuntu的docker主机?

时间:2015-11-26 10:09:44

标签: docker docker-machine

我是一个新的码头工具,并试图用docker-machine创建docker host。

目前,我使用VirutalBox进行试用环境。

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

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

2 个答案:

答案 0 :(得分:5)

OP没有描述他们如何使用通用驱动程序来解决他们的问题,所以这就是我如何做以防万一有兴趣的人:

  1. 获取Ubuntu Server ISO
  2. 在VirtualBox中创建一台机器。我称之为“Ubuntu模板”,因为我想在本地学习Swarm,所以我想要一台机器,我能够复制并在较长的初始设置后快速获得后续机器。
  3. 在设置
  4. 中为计算机启用桥接网络而不是NAT
  5. 启动计算机并使用ISO安装Ubuntu。在安装过程中,它将为您提供安装OpenSSH的选项,选择该选项。它还会要求您创建一个新用户。我用密码“ubuntu”打电话给我的“ubuntu”。您将使用此用户几次,因此将凭据设置为易于记忆的内容
  6. 安装完成后,切换到root:sudo su
  7. 使用passwd
  8. 将root的密码更改为易于记忆的内容
  9. 生成密钥:ssh-keygen
  10. 将您刚刚生成的密钥授权:cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
  11. 编辑文件/etc/ssh/sshd_config并使用“PermitRootLogin”更改该行,使其显示为PermitRootLogin yes
  12. 重新启动SSH以激活更改:service ssh restart
  13. 运行ifconfig并注意机器的IP
  14. 在主机上打开终端
  15. 运行(取代您机器的IP):
    ssh root@10.10.10.89 'cat ~/.ssh/id_rsa' > ~/.ssh/docker_test
  16. 执行命令
    ssh root@10.10.10.89 'cat ~/.ssh/id_rsa.pub' > ~/.ssh/docker_test.pub
  17. 运行(返回VM)shutdown now
  18. 在VirtualBox中,克隆模板机器(选中复选框以重新初始化MAC地址)。我将我的名字命名为ubuntu-1
  19. 启动新虚拟机并运行echo 'ubuntu-1' > /etc/hostname,然后运行reboot。只有你要从同一个模板创建更多的机器,然后你将它们命名为ubuntu-1,ubuntu-2等等,这才是必要的。
  20. 运行ifconfig以查找克隆计算机的IP
  21. 在您的主机上运行:
    docker-machine create --driver generic --generic-ip-address 10.10.10.90 --generic-ssh-key ~/.ssh/docker_test ubuntu-1
  22. 可能需要几分钟才能完成(主要是在“安装docker”步骤)但是你应该有一个可用的基于Ubuntu的docker机器。您可以通过运行docker-machine use ubuntu-1然后docker run hello-world

    来验证其是否有效

    它比使用Boot2Docker更复杂,但在初始设置之后它应该是非常可行的。我还没有做太多的事情,我只是通过运行hello-world验证它似乎有效,所以可能会有更多的问题,就像经常有Docker一样。

    额外提示:VirtualBox允许您以无头模式运行计算机。在初始设置并允许通过SSH进行root访问之后,如果需要,运行无头机器并通过SSH连接它们可能会更方便,您可以关闭VB的GUI,现在机器在后台运行就像服务一样。 p>

答案 1 :(得分:1)

  

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

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

您可以尝试启动一个完整的Ubuntu虚拟机,并在其中follows the regular docker installation for Ubuntu