創建一個安裝了 Docker 的 Vagrant 盒子
我正在嘗試基於 Vagrant 的盒子在Vagrant中為Docker創建一個不錯的遊樂場。(程式碼在 GitHub 上可用:rfkrocktk/docker-vagrant-playground)
precise64
這是我的實例的 Puppet 配置依賴項:
# Puppet for Docker Vagrant Box node default { # apt class { 'apt': } apt::source { 'docker': location => "http://get.docker.io/ubuntu", key => "36A1D7869245C8950F966E92D8576A8BA88D21E9", release => "docker", repos => "main", include_src => false } package { 'raring-kernel': name => 'linux-image-generic-lts-raring', ensure => present } package { 'lxc-docker': require => [apt::source["docker"], Package["raring-kernel"]] } }
(這遵循Docker 關於在 Ubuntu 12.04 LTS 上安裝的指南。)
不幸的是,我遇到了這個問題,因為 Docker 或多或少需要更高版本的核心(> = 3.9),這就是為什麼將
linux-image-generic-lts-raring
包聲明為依賴項的原因。還必須執行此核心才能正確使用 LXC(以及通過禁令,Docker)。執行
vagrant up
or後vagrant provision
,我重新啟動機器以便能夠啟動到新核心。不幸的是,VirtualBox Guest Additions 似乎沒有在 DKMS 中正確註冊:
Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` /vagrant /vagrant mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` /vagrant /vagrant
有沒有一種簡單的方法來獲得一個基於
precise64
Raring 核心執行並正確安裝的盒子?我希望能夠快速開始使用準備好進行 Docker 實驗的虛擬化環境。
顯然,Phusion 打包了他們自己的 Ubuntu 12.04 Vagrant 盒子,這些盒子執行所需的 3.8 核心,以便更容易使用 Docker。它們還提供記憶體和交換記帳核心初始化參數,以使這些功能可用於 LXC。
要使用這些框,只需更新 Vagrantfile 中的框名稱和 URL:
# ... Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "phusion-open-ubuntu-12.04-amd64" config.vm.box_url = "https://oss-binaries.phusionpassenger.com/vagrant/boxes/ubuntu-12.04.3-amd64-vbox.box" # ... end
請注意,仍然需要如上所述配置 Docker 包和儲存庫。
另請注意,為了解決 Hiera 警告,可以在 this answer on another question 中找到解決方案。
現在,使用 Vagrant 開始使用 Docker 應該非常容易:
$ git clone git@github.com:rfkrocktk/docker-vagrant-playground.git $ cd docker-vagrant-playground $ vagrant up $ vagrant ssh
希望這對將來的某人有所幫助。