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應用,具體做法如下:

  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愉快的進行開發了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM