# Hello Docker
從這個練習,可以了解:
- image 與 container 的差異
- image 與 container 之間的依賴關係
# 指令練習
# 確認本機的 image / container 狀態為何
docker image ls
docker container ls -a
# 首次執行官方的 hello world
docker run --name hello hello-world
# 再次確認 image / container 狀態
docker image ls
docker container ls
# 移除剛剛的 image / container
docker image rm hello-world
docker container rm hello
# 再次確認 image / container 狀態
docker image ls
docker container ls
# 指令說明
# docker run
建立新的 container 並執行 command,用法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
IMAGE 會先從 local repository 找,有的話就執行;若沒有的話,就會到 remote repository 下載並執行。
--name
參數為指定 container 名稱,它必須是唯一,若沒指定則會亂數產生(產生器原始碼 (opens new window)
# docker image
這是一系列與 image 相關的指令集,直接執行即可看到可用指令的列表。
# docker image ls
查看目前 local repository 所有 image。
# docker image rm
移除指定的 image,用法如下:
docker image rm [OPTIONS] IMAGE [IMAGE...]
IMAGE 可以是 tag name,或是 SHA1。其他地方所表示的 IMAGE 亦同。
從用法看得出:傳入一個以上的 IMAGE 是可行的。
# docker container
類似 docker image
,這是 container 相關的指令集。
# docker container ls
列出正在執行中的 container。
-a|--all
列出所有的 container
# docker container rm
移除指定的 container,用法如下:
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
CONTAINER 可以是當初 --name
參數給的名稱,或是 SHA1。其他地方所表示的 CONTAINER 亦同。
同
docker image rm
,傳入一個以上的 CONTAINER 是可行的。
# 總結
一開始了解 Image 與 Container 之間的差異是很重要的,如此才會理解不同的指令會對應到 Docker 不同的元件。
本練習可了解,這兩個元件關係與差異如下:
- Image 不能修改內容,Container 可以
- Image 不能拿來執行,Container 可以
- Container 必須基於 Image 產生