首頁 > 軟體

Windows 10的Ubuntu bash中執行Docker

2020-06-16 17:02:19

我覺得Windows 10上最好的創新之一就是Ubuntu bash,他使得在Windows上的開發體驗越來越接近MacBook,但有一個問題是,實際上你並不能在Windows 10的Ubuntu bash下執行各種daemon程式,例如以這兩年非常流行的docker來講,如果你想玩個微服務,試驗一下docker命令,就會看到如下錯誤:

主要是Windows 10下Ubuntu的bash上並不能執行docker daemon,有沒有什麼解決辦法暱?當然,最近新的Docker for Windows版本不僅支援Linux Container On Windows(LCOW),並且同時也可以支援在你最喜歡的Ubuntu Bash下很自然的跑docker應用,具體做法如下:

  1. 下載最新版本的Docker for windows,17.10以上版本,目前最新的是17.11.0-ce-rc2,進入docker的站點,選擇Edge channel下載:

    https://store.docker.com/editions/community/docker-ce-desktop-windows

     

  2. 因為Docker在Windows上的隔離依賴於Hyper-V來實現,所以安裝過程中需要你Enable Hyper-V功能,並重新啟動機器。
  3. 在正常安裝完成後,你應該在你的右下角看到一個Docker的圖示,圖示移過去之後,顯示Docker is running,選擇Docker圖示並單擊右鍵,選擇"setting", 那麼magic來了,你可以看到Docker的Windows Daemon實際上可以把自己的Daemon介面,通過2375介面暴露出來,在這個選項上打勾即可,同時,我們並不需要run Linux的container在Windows上,所以去掉最後一個選項的勾:

  1. 回到我們的Ubuntu bash, 首先我們檢查一下docker的版本:

  1. 然後我們在此執行docker images命令,不同之處在於我們需要指定-H命令,指明daemon主機,也就是我們Windows上暴露的埠號,可以看到可以正常了:

  1. 當然每次寫-H都比較麻煩也很不方便,那麼我們一個非常簡單的辦法就是把他作為環境變數放在.bashrc檔案中:

     

    $vi ~/.bashrc

     

    新增以下三行到檔案末尾:

PATH="$HOME/bin:$HOME/.local/bin:$PATH"

PATH="$PATH:/mnt/c/Program Files/Docker/Docker/resources/bin"

export DOCKER_HOST='tcp://0.0.0.0:2375'

 

然後source ~/.bashrc, 執行docker images命令,世界變的美好了:

  1. 好了,那麼我們現在可以在Ubuntu bash下面和Docker愉快的玩耍了,先來run一個hello-world,可以看到和我們正常的Windows下沒有差別:

然後再執行docker images:

然後我們簡單的執行一個web伺服器nginx,使用docker ps也可以看到這個進程在執行:

在本機上使用http://127.0.0.1:8080/來存取Nginx伺服器,可以看到web伺服器在正常執行:

從這個範例可以看出,利用Docker在Windows上的daemon新特性,我們可以非常方便的在Windows 10下的Ubuntu bash愉快的進行開發了~

更多Docker相關教學見以下內容: 

Docker安裝應用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 16.04 伺服器上設定使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm 

Ubuntu 15.04下安裝Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

Docker 安裝範例 http://www.linuxidc.com/Linux/2017-04/142666.htm 

Docker 建立基礎映象  http://www.linuxidc.com/Linux/2017-05/144112.htm 

在 Ubuntu 15.04 上如何安裝Docker及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Ubuntu 16.04上Docker使用手記 http://www.linuxidc.com/Linux/2016-12/138490.htm 

使用Docker分分鐘啟動常用應用  http://www.linuxidc.com/Linux/2017-04/142649.htm 

Ubuntu 16.04下Docker修改組態檔不生效解決辦法  http://www.linuxidc.com/Linux/2017-05/143862.htm 


IT145.com E-mail:sddin#qq.com