docker命令的自动化

时间:2014-05-29 10:48:24

标签: docker boot2docker

我想执行docker命令的自动化,以便

我可以验证docker命令来验证健全性。

我只需要知道是否有任何插件可用于此目的,或者如果我必须从头开始,我可以编写哪种语言?如何开始它?

1 个答案:

答案 0 :(得分:2)

如果您正在寻找一种使用Docker自动创建和配置VM的方法,您应该看看Vagrant(也许是Puppet)。

流浪

Vagrant是一个创建虚拟机的工具。你可以在http://www.vagrantup.com/找到它。它基本上是这样的:你安装Vagrant和像VirtualBox这样的VM。然后创建一个名为Vagrantfile的文件来描述您的VM。对于我的Docker环境,我使用的文件如下所示:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "99designs/ubuntu-saucy-docker"
  config.vm.box_url = "https://vagrantcloud.com/99designs/ubuntu-saucy-docker/version/2/provider/virtualbox.box"

  config.vm.network :forwarded_port, guest: 8080, host: 8080
  config.vm.network :forwarded_port, guest: 4243, host: 4243
  config.vm.network :forwarded_port, guest: 9000, host: 9000
  config.vm.network :forwarded_port, guest: 5000, host: 5000

  config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=777"]

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2024"]
    vb.customize ["modifyvm", :id, "--cpus", "2"]
  end

  config.vm.provision "shell", path: "add_docker_to_sudo.sh"
  config.vm.provision "shell", path: "disable_friewall.sh"
  config.vm.provision "shell", path: "set_nls_lang.sh"

end

该文件描述了您的VM。它定义了安装到VM的映像(可能是boot2docker映像),打开的端口,VM中可用主机的文件夹等。它还可以定义VM启动时运行的脚本。在我的示例中,当VM启动时,我将运行三个shell脚本以将Docker添加到sudo,禁用防火墙(hahaha)并设置我需要的环境变量。你可以在这里做任何事情。如果shell命令不够,请查看(例如)Puppet(http://puppetlabs.com/)。

您只需致电vagrant up创建您的虚拟机,然后vagrant ssh即可访问该虚拟机。您可以随时销毁它并在需要时再次创建它。