如何使用 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 下載 - 找到
ubuntu
image - 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 :
d
etach,建立 container 後,就脫離目前 process - -t :
t
erminal,預設執行/bin/bash
process,為了讓 container 啟動後不會立即停止 - ubuntu : Ubuntu 的官方 image 名稱
Docker container 重要觀念
One process per container
- 一個 container 應該只有 process
- 若有多個 process,就應該有多個 container
- process 執行完,container 則釋放停止執行
當 process 執行完,container 會自動釋放,
ubuntu
image 預設並沒有執行任何 process,所以start
完後會自動釋放,為了讓 container 不會執行完立即釋放,因此特別加上-t
,讓此 container 預設執行bash
,使的 container 不會釋放
- 使用
docker run
建立 container 並執行 bash
觀察 Container
1 | $ docker ps |
- ps :
p
resents
tate,使用docker ps
顯示正在執行
的 container。
- 輸入
docker ps
MyUbuntu
container 正在執行中
進入 Ubuntu
1 | $ docker exec -it MyUbuntu bash |
使用 docker exec
對已經執行中的 container 下指令。
- -i :
i
nteractive,可對 terminal 輸入資料 - -t :
t
erminal,可對 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
停止MyUbuntu
container - 輸入
docker ps
顯示目前執行中的 container
目前已經沒有執行中的 container,表示 Ubuntu 已經停止執行
啟動 Container
1 | $ docker start MyUbuntu |
使用 docker start
重新啟動已經在硬碟,但還沒有執行的 container。
使用 docker ps
顯示目前執行中的 container。
- 輸入
docker start MyUbuntu
啟動MyUbuntu
container - 輸入
docker ps
顯示目前執行中的 container MyUbuntu
container 執行中。
刪除 Container
1 | $ docker rm MyUbuntu |
使用 docker rm
刪除在硬碟中的 container。
- 輸入
docker rm MyUbuntu
刪除MyUbuntu
container,由於 container 正在執行中,無法刪除 - 輸入
docker stop MyUbuntu
停止MyUbuntu
container - 再次輸入
docker rm MyUbuntu
刪除MyUbuntu
container,此次刪除成功 - 輸入
docker ps -a
顯示所有在硬碟的 container,確認已經沒有任何 container
要刪除 container 之前,必須先停止 container,才能加以刪除。
顯示所有 Image
1 | $ docker images |
使用 docker images
顯示目前在硬碟所有的 image。
- 輸入
docker images
顯示目前在硬碟的所有 image - 目前有
ubuntu
image
刪除 Image
1 | $ docker rmi ubuntu |
使用 docker rmi
刪除 image。
- rm : 刪除
- i :
i
mage
- 輸入
docker rmi ubuntu
刪除ubuntu
image - 輸入
docker images
確認是否 image 已被刪除
Summary
Conclusion
- 使用 Docker 快速建立 Ubuntu 測試環境
- 本文為 Docker 最基本的操作,是使用 Docker 一定要會的基本指令