先前透過 Virtualbox 使用 Docker 時,偶而會遇到 Docker 失靈,需重開 docker-machine 才可繼續使用之情形。相信在改用原生的 Docker 後,不管是穩定度還是效能都會有所改善。
![]() |
▲ Docker for Mac (v1.11.0-beta8) |
1. 事前準備
本文的情境是原先已安裝 Docker Toolbox (docker-machine),事後收到 Docker for Mac 的 Beta 封測信後所進行的。若客倌是直接安裝 Docker for Mac,或已移除 Docker Toolbox 的情境下,可略過此步驟。名稱 | 別名 | Native app | 虛擬化技術 |
Boot2docker | boot2docker | ㄨ | Virtualbox |
Docker Toolbox | docker-machine | ㄨ | Virtualbox |
Docker for Mac | Docker.app | 〇 | xhyve VM |
Docker for Windows | none | 〇 | Hyper-V VM |
1.1. 列出所有的 docker machine。
[ jonny@el_capitan ~ ]
$ docker-machine ls [Enter] NAME ACTIVE DRIVER STATE URL SWARM default * virtualbox Stopped tcp://192.168.99.100:2376
1.2. 停止執行中的 docker machine。
[ jonny@el_capitan ~ ]
$ docker-machine stop default [Enter] NAME ACTIVE DRIVER STATE URL SWARM default virtualbox Stopped
1.3. 移除應用程式 (Applications) 路徑底下的 Docker 相關檔案。
[ jonny@el_capitan ~ ]
sudo rm -rf /Applications/Docker [Enter]
2. 安裝 Docker for Mac
以下為凍仁在 Mac OS X 10.11.4 安裝 Docker for Mac (v1.11.0-beta8) 的相關步驟。
![]() |
▲ 2.1. 執行 Docker for Mac 安裝程式。 |
![]() |
▲ 2.2. 拖曳 Docker.app 圖示到 Applications 裡。 |
![]() |
▲ 2.3. 執行 Docker.app 進入安裝程序。 |
![]() |
▲ 2.4. 輸入 Docker for Mac 的封測邀請碼。 |
![]() |
▲ 2.5. 驗證完成。 |
![]() |
▲ 2.6. 要求存取 /user/local/bin 目錄之權限。 |
![]() |
▲ 2.7. Docker Toolbox 移轉程序。 |
![]() |
▲ 2.8. 正在移轉 docker image。 |
![]() |
▲ 2.9. 安裝完成。 |
![]() |
▲ 2.10. 安裝完成會在右上角的選單列圖示看到 Docker 的圖示。 |
![]() |
▲ 2.11. Settings… |
![]() |
▲ 2.12. 安裝過程中會詢問是否要下載 Kitematic,這部份就看個人需求了。 |
2.13. 新的 docker image 將會儲存於 ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2。
[ jonny@el_capitan ~ ]
$ ls -lh \ ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux [Enter] total 23367224 -rw-r--r-- 1 jonny staff 11G May 2 22:29 Docker.qcow2 -rw-r--r-- 1 jonny staff 64K May 1 11:08 console-ring -rw-r--r-- 1 jonny staff 5B Apr 29 10:17 hypervisor.pid -rw-r--r-- 1 jonny staff 0B Apr 23 17:42 lock drwxr-xr-x 8 jonny staff 272B Apr 23 17:42 log -rw-r--r-- 1 jonny staff 17B Apr 29 10:17 mac.0 -rw-r--r-- 1 jonny staff 36B Apr 23 17:42 nic1.uuid -rw-r--r-- 1 jonny staff 36B Apr 23 17:42 nic2.uuid -rw-r--r-- 1 jonny staff 5B Apr 29 10:17 pid lrwxr-xr-x 1 jonny staff 12B Apr 29 10:17 tty -> /dev/ttys004 -rw-r--r-- 1 jonny staff 1.1K Apr 29 10:17 xhyve.args
2.14. 執行 Docker for Mac 以驗證是否可以正常使用 Docker。
[ jonny@el_capitan ~ ]
$ docker run -d -p 8000:80 --name webserver nginx [Enter]
2.15. 使用 curl 進行測試,以下為 Nginx container 正常運作之結果。
[ jonny@el_capitan ~ ]
$ curl -s http://localhost:8000 [Enter]
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
![]() |
▲ 2.16. 使用 Firefox 進行測試之結果。 |
3. 移除 Docker Toolbox (可略過)
Docker for Mac 的安裝程式是不會對 Docker Toolbox 進行移除程序的,所以在成功安裝 Docker for Mac 後,需手動移除 Docker Toolbox (docker-machine)。移除前請先再三先確 Docker for Mac 是否可以正常運作,否則會有遺失 docker image 的風險。
3.1. 移除 docker machine。
[ jonny@el_capitan ~ ]
$ docker-machine rm default [Enter]
About to remove default
Are you sure? (y/n): y
Successfully removed default
3.2. 移除 Virtualbox 目錄。
[ jonny@el_capitan ~ ]
$ rm -rf ~/.docker/machine/machines/ [Enter]
3.3. 檢視 Docker 執行檔。
[ jonny@el_capitan ~ ]
$ ls -l /usr/local/bin/ | grep docker [Enter] -rwxr-xr-x 1 jonny admin 7.3M Feb 11 2015 boot2docker lrwxr-xr-x 1 jonny staff 65B Apr 23 16:07 docker -> /Users/jonny/Library/Group Containers/group.com.docker/bin/docker lrwxr-xr-x 1 jonny staff 73B Apr 23 16:07 docker-compose -> /Users/jonny/Library/Group Containers/group.com.docker/bin/docker-compose -rwxr-xr-x 1 jonny admin 4.8M Apr 14 04:28 docker-compose.backup lrwxr-xr-x 1 jonny staff 73B Apr 23 16:07 docker-machine -> /Users/jonny/Library/Group Containers/group.com.docker/bin/docker-machine -rwxr-xr-x 1 jonny admin 39M Apr 14 04:28 docker-machine.backup -rwxr-xr-x 1 jonny admin 9.9M Apr 14 02:17 docker.backup lrwxr-xr-x 1 jonny staff 65B Apr 23 16:07 notary -> /Users/jonny/Library/Group Containers/group.com.docker/bin/notary lrwxr-xr-x 1 jonny staff 65B Apr 23 16:07 pinata -> /Users/jonny/Library/Group Containers/group.com.docker/bin/pinata
3.4. 移除過時的 Docker 執行檔。
[ jonny@el_capitan ~ ]
$ sudo rm -f \
/usr/local/bin/docker-compose.backup \
/usr/local/bin/docker-machine.backup \
/usr/local/bin/docker.backup [Enter]
4. 移除 Boot2docker (可略過)
由於凍仁的 Docker Toolbox 是從 Boot2docker 移轉過來的,所以才會殘留 boot2docker.iso 與相關檔案,未安裝 Boot2docker 的人請忽略該步驟。[ jonny@el_capitan ~ ]
$ sudo rm -rf \
/usr/local/bin/boot2docker \
/usr/local/share/boot2docker/ [Enter]
趁週末空檔進行移轉程序的凍仁覺得 Docker 公司很用心!不管是從 Boot2docker 移轉到 Docker Toolbox,還是從 Docker Toolbox 移轉到 Docker for Mac,其安裝程式都有內建移轉功能。
心動了嗎?快去申請 Docker for Mac 的 Beta 邀請信吧!
※ 註:凍仁收到 Docker for Mac (beta) 邀請信的日期為 2016/04/19 。
2016-05-05
感謝友人 Aminzai 指正。雖說目前對官方而言 Docker for Mac 是 Mac native application,但背地裡還是使用 xhyve VM 執行 Alpine Linux 來跑 Docker,與 GNU/Linux 的 native 還是有所不同。
[ jonny@el_capitan ~ ]
$ docker info Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 35 Server Version: 1.11.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 124 Dirperm1 Supported: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: host bridge null Kernel Version: 4.4.6-moby Operating System: Alpine Linux v3.3 OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 1.956 GiB Name: docker ID: V5F2:RAIJ:5MHW:7YO2:DXUF:XXIX:QXSG:XRVE:CN3B:TERM:MMPX:SLH7 Docker Root Dir: /var/lib/docker Debug mode (client): false Debug mode (server): true File Descriptors: 15 Goroutines: 35 System Time: 2016-05-05T06:17:06.573284709Z EventsListeners: 1 Registry: https://index.docker.io/v1/
相關連結:
★ Installation on Mac OS X | Docker
★ Docker 奉上生日大禮,推出原生 Windows 及 Mac 版 Docker | iThome
★ Mac OS X 新手從頭學:介面用語一次搞懂 | T客邦
資料來源:
★ Getting Started | Docker for Mac
★ Docker for Mac vs. Docker Toolbox | Docker for Mac
Docker for Mac(Beta)(xhyve) 小觀察 | 民
★ Migrate from Boot2Docker to Machine | Docker
★ toolbox/uninstall.sh at master · docker/toolbox | GitHub
沒有留言 :
張貼留言
喜歡這篇文章嗎?歡迎在底下留言讓凍仁知道。😉