2021-05-12 14:32:11
Windows 10的Ubuntu bash中執行Docker
我覺得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應用,具體做法如下:
-
下載最新版本的Docker for windows,17.10以上版本,目前最新的是17.11.0-ce-rc2,進入docker的站點,選擇Edge channel下載:
https://store.docker.com/editions/community/docker-ce-desktop-windows
- 因為Docker在Windows上的隔離依賴於Hyper-V來實現,所以安裝過程中需要你Enable Hyper-V功能,並重新啟動機器。
- 在正常安裝完成後,你應該在你的右下角看到一個Docker的圖示,圖示移過去之後,顯示Docker is running,選擇Docker圖示並單擊右鍵,選擇"setting", 那麼magic來了,你可以看到Docker的Windows Daemon實際上可以把自己的Daemon介面,通過2375介面暴露出來,在這個選項上打勾即可,同時,我們並不需要run Linux的container在Windows上,所以去掉最後一個選項的勾:
- 回到我們的Ubuntu bash, 首先我們檢查一下docker的版本:
- 然後我們在此執行docker images命令,不同之處在於我們需要指定-H命令,指明daemon主機,也就是我們Windows上暴露的埠號,可以看到可以正常了:
-
當然每次寫-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命令,世界變的美好了:
- 好了,那麼我們現在可以在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
相關文章