如何使用 Docker 安裝 Ubuntu ?
以前在 macOS 安裝 Ubuntu 都要先安裝 Parallel Desktop,然後再將 Ubuntu 安裝在 Parallel Desktop 上,安裝了 Docker for Mac 後,只要下載 Ubuntu 的 Docker image,Ubuntu 就能以 container 形式跑在 Docker 上。
Version
macOS High Sierra 10.13.3
Docker for Mac 17.20.0-ce-mac49 (21995)
Ubuntu 16.04.4 LTS
搜尋 Ubuntu Image
1 | $ docker search ubuntu |
使用 docker search 搜尋 Docker Hub 的 image。

- 使用 Docker 第一步就是使用
docker search到 Docker Hub 搜尋 image 下載 - 找到
ubuntuimage - 7234 star
- 為 official image
下載 Docker image 時,盡量使用 official image,而不要使用別人包過的 image,因為可能會有後門或木馬
下載並建立 Container
1 | $ docker run --name MyUbuntu -dt ubuntu |
使用 docker run 由 image 建立 container,當 Docker 發現本機沒有 image,會自動從 Docker Hub 下載。
- –name : 替 container 取一個人能夠識別的名字
MyUbuntu( 若省略,Docker 將隨機命名 ) - -d :
detach,建立 container 後,就脫離目前 process - -t :
terminal,預設執行/bin/bashprocess,為了讓 container 啟動後不會立即停止 - ubuntu : Ubuntu 的官方 image 名稱
Docker container 重要觀念
One process per container
- 一個 container 應該只有 process
- 若有多個 process,就應該有多個 container
- process 執行完,container 則釋放停止執行
當 process 執行完,container 會自動釋放,
ubuntuimage 預設並沒有執行任何 process,所以start完後會自動釋放,為了讓 container 不會執行完立即釋放,因此特別加上-t,讓此 container 預設執行bash,使的 container 不會釋放

- 使用
docker run建立 container 並執行 bash
觀察 Container
1 | $ docker ps |
- ps :
presentstate,使用docker ps顯示正在執行的 container。

- 輸入
docker ps MyUbuntucontainer 正在執行中
進入 Ubuntu
1 | $ docker exec -it MyUbuntu bash |
使用 docker exec 對已經執行中的 container 下指令。
- -i :
interactive,可對 terminal 輸入資料 - -t :
terminal,可對 terminal 顯示資料 - MyUbuntu : Container 名稱
- bash : 對 container 下的指令

- 輸入
docker exec -it進入 container 的 terminal - 輸入
ll - 顯示 Ubuntu 內的目錄結構
如此可證明 Ubuntu 已經正常啟動
離開 Ubuntu
1 | $ exit |
使用 exit 離開 Ubuntu 的 terminal。

停止 Container
1 | $ docker stop MyUbuntu |
使用 docker stop 停止 container。

- 輸入
docker stop MyUbuntu停止MyUbuntucontainer - 輸入
docker ps顯示目前執行中的 container
目前已經沒有執行中的 container,表示 Ubuntu 已經停止執行
啟動 Container
1 | $ docker start MyUbuntu |
使用 docker start 重新啟動已經在硬碟,但還沒有執行的 container。
使用 docker ps 顯示目前執行中的 container。

- 輸入
docker start MyUbuntu啟動MyUbuntucontainer - 輸入
docker ps顯示目前執行中的 container MyUbuntucontainer 執行中。
刪除 Container
1 | $ docker rm MyUbuntu |
使用 docker rm 刪除在硬碟中的 container。

- 輸入
docker rm MyUbuntu刪除MyUbuntucontainer,由於 container 正在執行中,無法刪除 - 輸入
docker stop MyUbuntu停止MyUbuntucontainer - 再次輸入
docker rm MyUbuntu刪除MyUbuntucontainer,此次刪除成功 - 輸入
docker ps -a顯示所有在硬碟的 container,確認已經沒有任何 container
要刪除 container 之前,必須先停止 container,才能加以刪除。
顯示所有 Image
1 | $ docker images |
使用 docker images 顯示目前在硬碟所有的 image。

- 輸入
docker images顯示目前在硬碟的所有 image - 目前有
ubuntuimage
刪除 Image
1 | $ docker rmi ubuntu |
使用 docker rmi 刪除 image。
- rm : 刪除
- i :
image

- 輸入
docker rmi ubuntu刪除ubuntuimage - 輸入
docker images確認是否 image 已被刪除
Summary
Conclusion
- 使用 Docker 快速建立 Ubuntu 測試環境
- 本文為 Docker 最基本的操作,是使用 Docker 一定要會的基本指令