win10系統(tǒng)安裝的ubuntu 的子系統(tǒng)瞭空,安裝上docker后運行 service docker start ,顯示OK,然后docker ps查看報錯:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
wtf? 查看服務(wù)狀態(tài)
# service docker status
* Docker is not running
竟然沒有運行成功,后來各種折騰還是不行,網(wǎng)上查了相關(guān)資料后基本認定我這個子系統(tǒng)是運行不起來了方库,原因是目前 wsl 是不支持 docker 的守護進程的
于是乎,想要方便的在 wsl Ubuntu 上使用 docker 的想法近乎破滅障斋。想要使用還是有方法的纵潦,可以參考這篇博客 在Linux的Windows子系統(tǒng)上(WSL)使用Docker(Ubuntu)徐鹤。
將子系統(tǒng)作為docker client端連接遠程docker damaen服務(wù)
我們知道docker是cs架構(gòu)的,即分為client端和server端邀层,本地都是通過socket協(xié)議通訊的返敬,如果本地client要連接遠程的docker服務(wù),則需要在client上導(dǎo)出以下環(huán)境變量
export DOCKER_HOST=tcp://<your docker server ip>:2375
2375是默認的連接端口被济,當然你可以在服務(wù)器端指定其他端口救赐。
(前提:遠程docker server開啟了tcp連接,即在 /lib/systemd/system/docker.service 中的ExecStart=/usr/bin/dockerd 一句后面追加tcp訪問協(xié)議只磷,如下:
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
這樣server才能接受來自其他機器的docker命令)
執(zhí)行docker ps经磅, ok沒問題,打印出了遠端host的docker容器信息钮追。
這樣我的子系統(tǒng)就變成了docker client端预厌。
over!