此問題已發佈到Vagrant Google Group。流浪漢和碼頭服務提供商
我的環境:
OS-X 10.9.4
VirtualBox 5.012 r104815
Vagrant 1.7.4
嘗試使用泊塢窗供應商,與主機是geerlingguy/centos7
放置:
config.vm.provision "docker"
在主機遊民文件,它自動可配置我的主機具有以下碼頭版本:
Version: 1.8.2-el7.centos
API version: 1.20
Package Version: docker-1.8.2-10.el7.centos.x86_64
Go version: go1.4.2
Git commit: a01dc02/1.8.2
Built:
OS/Arch: linux/amd64
Server:
Version: 1.8.2-el7.centos
API version: 1.20
Package Version:
Go version: go1.4.2
Git commit: a01dc02/1.8.2
Built:
OS/Arch: linux/amd64
我可以運行中樞搬運工容器,但是當我嘗試從Dockerfile打造泊塢窗容器我得到:
Command: "docker" "build" "/var/lib/docker/docker_build_1b35c3f0278e1a3b37d1578d7ce326e5"
Stderr:
Stdout: unable to prepare context: unable to evaluate symlinks in context path: lstat /var/lib/docker/docker_build_1b35c3f0278e1a3b37d1578d7ce326e5: permission denied
如果我顛沛流離的ssh進入centos7主機和運行
docker build /var/lib/docker/docker_build_1b35c3f0278e1a3b37d1578d7ce326e5
我看到同樣的錯誤但如果我運行
sudo docker build /var/lib/docker/docker_build_1b35c3f0278e1a3b37d1578d7ce326e5
構建運行。
我想:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
的主機,但隨後沒有找到泊塢窗命令。
也許我應該增加我這樣做在主機vagrantfile:
# Ensure vagrant user can run docker command
config.vm.provision "shell", inline: "sudo groupadd docker;true"
config.vm.provision "shell", inline: "sudo usermod -a -G docker vagrant;true"
config.vm.provision "shell", inline: "docker version"
config.vm.provision :reload
和流浪者可以運行泊塢窗。
這是它翻倒(在泊塢窗遊民文件):
config.vm.provider "docker" do |docker|
docker.build_dir = /path/to/my/dockerfile/on/the/host/vm (FAILS WITH symlink ERROR)
end
但
config.vm.provider "docker" do |docker|
docker.image = hub/image
end
將成功創建一個容器。
我一直在敲我的腦袋2天 - 閱讀各種關於virtualbox中的符號鏈接問題,並嘗試各種不同的設置。
任何人都可以建議我應該如何解決這個問題。
謝謝。
您在設置「確保流浪使用者可以運行docker命令」配置之後重新配置虛擬機? –
好的,所以在放入這些行之前,docker vagrantfile會在一些docker命令中崩潰。我把最後一個'reload'行放在了(使用reload插件),然後它似乎流浪可以運行docker命令 - 實際上它可以旋轉碼頭集線器的容器,只是不會因爲符號鏈接錯誤而生成,只有sudo它似乎可以構建 – user2237076
I強烈認爲這是由於流浪者用戶需要root權限才能運行docker。你是否[創建碼頭組,並添加流浪用戶](http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo)? –