在Windows上從Bash運行Dockerhtml
Docker須要訪問至關多的系統調用,這些調用不必定都是在Windows上實現的,所以在WSL下Docker可能並不那麼容易,相反,我能夠在Windows上運行Docker Engine,並從Bash鏈接到Docker 。linux
要在Windows上安裝Docker引擎,只需訪問docker.com並下載相應的發行版(win10下載docker for windows)。此外,請確保已啓用硬件虛擬化並安裝Hyper-V,以避免引擎沒法啓動。docker
1、從Bash運行Windows可執行文件。只需將這兩行添加到您的.bashrc
(並從新加載您的環境)ubuntu
export PATH="$HOME/bin:$HOME/.local/bin:$PATH" export PATH="$PATH:/mnt/c/Program\ Files/Docker/Docker/resources/bin" alias docker=docker.exe alias docker-compose=docker-compose.exe
你如今能夠docker --version
從Bash 運行windows
2、在WSL上安裝Docker,Ubuntu系統的安裝方法以下bash
# Install packages to allow apt to use a repository over HTTPS $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common # Add Docker's official GPG key $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # Set up the repository sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # Update source lists sudo apt-get update # Install Docker sudo apt-get install docker-ce
如今已經在Windows和WSL上安裝了Docker引擎,但它們都沒有啓動。ssh
windows的docker只要點擊快捷方式啓動,啓動後在PowerShell上執行命令以下:curl
PS C:\> docker images REPOSITORY TAG IMAGE ID CREATED SIZE
WSL上的Docker啓動不了,bash命令以下tcp
$ service docker start docker: unrecognized service $ docker images Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker
在另外一臺機器上運行實際上很是簡單,由於Docker公開了CLI能夠附加到的TCP端點。端點使用TLS,這意味着咱們必須在WSL端設置客戶端以識別Windows端Docker機器使用的證書,運行以下命令this
$ export DOCKER_HOST=tcp://192.168.99.100:2376 // your Docker IP $ export DOCKER_CERT_PATH=/mnt/c/Users/YOUR_USERNAME/.docker/machine/certs $ export DOCKER_TLS_VERIFY=1
完成後,咱們須要作的就是將Bash下的CLI鏈接到在Windows下運行的引擎,而不是鏈接到在Bash下不能運行的dockers,以下所示:
$ docker -H tcp://0.0.0.0:2376 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE
若是不是使用TLS,不使用證書,要公開沒有TLS的守護進程。此步驟是必需的,以便守護程序在TCP端點上進行偵聽。若是你不這樣作,那麼你將沒法從WSL鏈接,因此爲了讓客戶端和docker通訊,必須打開如下黃色背景的選項!操做以下截圖
您可能還想共享您的驅動器(土話:盤符)。這一步不是必須的,但若是須要用到某個盤符的文件,建議勾選對應選項,轉到「共享驅動器(Shared Drives)」設置並啓用它。
將WSL配置爲鏈接到Docker for Windows
執行命令:export DOCKER_HOST=tcp://127.0.0.1:2375
如今執行docker命令不會再出現如下提示:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
可是,該環境變量只會持續到會話結束。每次打開bash時都必須從新設置它。所以,爲了不這種狀況,您須要在主目錄中的一個名爲.bash_profile或者 .bashrc的文件中設置該變量,
這兩個文件只支持ssh命令終端用vi打開
在FileZilla文件訪問軟件是沒法找到的
打開這兩個文件中有數據的那個並在結尾處添加
保存後從新啓動bash控制檯執行docker相關命令能夠照常執行了。
參考博文:
二、https://blog.jayway.com/2017/04/19/running-docker-on-bash-on-windows/