以前在 macOS 安裝 Ubuntu 都要先安裝 Parallel Desktop,然後再將 Ubuntu 安裝在 Parallel Desktop 上,安裝了 Docker Desktop for macOS 後,只要下載 Ubuntu 的 Docker Image,Ubuntu 就能以 Container 形式跑在 Docker 上。
Version
Ubuntu 16.04.4 LTS
Ubuntu Image
$ 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,因為可能會有後門或木馬
docker run
$ 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
docker ps
$ docker ps
- ps :
p
resents
tate,使用docker ps
顯示正在執行
的 container。
- 輸入
docker ps
MyUbuntu
container 正在執行中
Login Ubuntu
$ 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 已經正常啟動
Exit Ubuntu
$ exit
使用 exit
離開 Ubuntu 的 terminal。
Stop Ubuntu
$ docker stop MyUbuntu
使用 docker stop
停止 container。
- 輸入
docker stop MyUbuntu
停止MyUbuntu
container - 輸入
docker ps
顯示目前執行中的 container
目前已經沒有執行中的 container,表示 Ubuntu 已經停止執行
Start Ubuntu
$ docker start MyUbuntu
$ docker ps
使用 docker start
重新啟動已經在硬碟,但還沒有執行的 container。
使用 docker ps
顯示目前執行中的 container。
- 輸入
docker start MyUbuntu
啟動MyUbuntu
container - 輸入
docker ps
顯示目前執行中的 container MyUbuntu
container 執行中
Delete Ubuntu
$ 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,才能加以刪除。
docker images
$ docker images
使用 docker images
顯示目前在硬碟所有的 image。
- 輸入
docker images
顯示目前在硬碟的所有 image - 目前有
ubuntu
image
Delete Image
$ docker rmi ubuntu
使用 docker rmi
刪除 image。
- rm : 刪除
- i :
i
mage
- 輸入
docker rmi ubuntu
刪除ubuntu
image - 輸入
docker images
確認是否 image 已被刪除
Summary
Conclusion
- 本文使用 Docker 快速建立 Ubuntu 測試環境,均為Docker 最基本的操作,是使用 Docker 一定要會的基本 command