1

我想做 docker 命令的自动化,这样,

我可以验证 docker 命令以验证 sanity 。

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

4

1 回答 1

2

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

流浪汉

Vagrant 是一个创建虚拟机的工具。您可以在http://www.vagrantup.com/找到它。它的工作原理基本上是这样的:你安装 Vagrant 和一个像 VirtualBox 这样的虚拟机。然后你创建一个名为 Vagrantfile 的文件来描述你的虚拟机。对于我的 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 的映像(可能是 boot2docker 映像)、打开的端口、VM 中可用的主机文件夹等等。它还可以定义在 VM 启动时运行的脚本。在我的示例中,当 VM 启动时,我正在运行三个 shell 脚本以将 Docker 添加到 sudo、禁用防火墙(哈哈哈)并设置我需要的环境变量。你可以在这里做任何事情。如果 shell 命令还不够,请查看(例如)Puppet ( http://puppetlabs.com/ )。

您只需调用vagrant up创建您的虚拟机并vagrant ssh访问它。您可以在需要时销毁它并再次创建它。

于 2014-05-29T11:14:15.530 回答