2016-04-21 25 views
15

泊塢窗插座在* nix系統中,可以通過做這樣的事情綁定貼裝從主機到虛擬機的泊塢窗插座:綁定在Windows

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

是否有一個相當於在Windows主機上運行docker時如何做到這一點?


我喜歡嘗試不同的組合:

docker run -v tcp://127.0.0.1:2376:/var/run/docker.sock ...

docker run -v "tcp://127.0.0.1:2376":/var/run/docker.sock ...

docker run -v localhost:2376:/var/run/docker.sock ...

這些都沒有工作。

+1

在Windows泊塢窗運行VirtualBox的內VM,所以它無法綁定來自Windows的網絡資源。 –

回答

9

由於Docker documentation states

If you are using Docker Machine on Mac or Windows, your Engine daemon has only limited access to your OS X or Windows filesystem. Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory. So, you can mount files or directories on OS X using:

docker run -v /Users/<path>:/<container path> ... 

On Windows, mount directories using:

docker run -v /c/Users/<path>:/<container path> ... 

All other paths come from your virtual machine’s filesystem, so if you want to make some other host folder available for sharing, you need to do additional work. In the case of VirtualBox you need to make the host folder available as a shared folder in VirtualBox. Then, you can mount it using the Docker -v flag.

所有這麼說,你仍然可以使用:

docker run -v /var/run/docker.sock:/var/run/docker.sock ... 

第一個/var/run/docker.sock指向您的boot2docker虛擬機中的相同路徑。

例如,當我在Windows機器上使用以下命令來經營自己的形象詹金斯:

$ docker run -dP -v /var/run/docker.sock:/var/run/docker.sock alidehghanig/jenkins 

我可以使用典型的docker命令還聊到了碼頭工人守護進程在主機。例如,當我在詹金斯容器中運行docker ps,我可以看到運行的容器在主機:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS  NAMES 
65311731f446 jen... "/bi.." 10... Up 10.. 0.0.0.0:.. jenkins 
+1

非常好的解釋! – Andrei

19

對於泊塢的Windows以下似乎工作:-v //var/run/docker.sock:/var/run/docker.sock

+0

這真的有效!我一直試圖讓這個工作永遠。非常感謝! – potz

+3

上面的一些答案看起來好像不是指在Docker for Windows上運行Windows容器。當我嘗試這樣做的運行標準命令: '搬運工運行-v /var/run/docker.sock:在/ var /運行/ docker.sock' 我得到以下錯誤: '泊塢窗:來自守護進程的錯誤響應:無效的綁定安裝規範「//var/run/docker.sock:/var/run/docker.sock」:無效的卷規範:'\\ var \ run \ docker.sock:\ var \ run \ docker.sock'' 錯誤是有道理的,因爲我在Windows上,試圖運行Windows容器的路徑沒有意義。 –

+1

@JoshWittner:您是否找到了一個解決方案,使Windows Containers中的Docker Socket在Windows主機中可用? – Martin