
本篇文章是介紹鏡像 image 和 容器 container 的基礎操作指令,後直接使用英文 image 和 container 替代。
首先來講解釋一下 image 和 container 的關系。
image 概念image 就是我們從 docker 遠端倉庫裡 pull 下來的系統,Ubuntu 也好, Python 也好,背後都是一個最精簡的 Linux 作業系統在支援,這些都是鏡像。
即便你把你的代碼寫了進去,隻要這個 image 沒有運作起來,就還是一個 image。
container 概念當我們把上述 image 運作起來,這個 image 就成了一個 container。
官方解釋就是 image 是 建構時(
build-time)結構,container 是 運作時(
run-time)結構。
好,接下來介紹一下
image和
container的具體操作指令。
image 操作指令
檢視本地所有 pull 下來的鏡像:docker image ls
拉取一個 Ubuntu 鏡像: docker image pull ubuntu:latest
拉取一個 Python 鏡像: docker image pull python:3.6
在遠端倉庫,每一個鏡像都有 對應的鏡像名字和标簽(tag),比如 ubuntu 和 latest。
如不指定标簽,會預設 pull 标簽為 latest 的鏡像。
使用 -a 參數 pull 所有指定鏡像:docker image pull -a python
在遠端倉庫搜尋相關鏡像: docker search ubuntu
檢視某鏡像标簽、id、分層等各種資訊: docker image inspect ubuntu:latest
通過 IMAGE ID 删除某個 image: docker image rm ed21b7a8aee9
上述中的 ed21b7a8aee9 就是某鏡像的 IMAGE ID,可通過
docker image ls檢視 image 的第一列擷取。
删除所有 image:docker image rm $(docker image ls -q) -f
container 操作指令
檢視所有容器:docker container ls
運作某個 image 進入該 container: docker container run -it ubuntu:latest /bin/bash
運作某個 imag 并使其在背景運作: docker container run -itd ubuntu:latest /bin/bash
進入某個 container: docker container ls #檢視并選擇某個 container id
#根據 container id 進入該 container
docker container exec -it 039d1fb17ec4 /bin/bash
退出某個 container: exit
#或者
ctrl + p + q #(按住ctrl+p, ctrl 不放 p 放開, 再按q)
注意: 如果你是運作并進入某個 container ,輸入 exit 退出系統後,該 container 也會停止。
如果你是進入一個運作中的 container ,輸入 exit 隻是退出界面,container 會在背景運作。
而不管什麼情況,ctrl + p + q 操作,都隻是退出界面,不會停止 container。
停止 container 運作:docker container stop 90046a96e675 #這串代碼是 CONTAINER ID
删除某個 container: docker container rm 90046a96e675
以 name 字段運作 container: docker container run --name hunter -itd ubuntu:latest /bin/bash
使用 name 字段進入 container: docker container exec -it hunter /bin/bash
使用 name 字段停止 container: docker container stop hunter
使用 name 字段重新運作 container: docker container start hunter
列出包括已經停止的 container: docker container ls -a
删除所有 container: docker container rm $(docker container ls -aq) -f
檢視 container 詳細資訊: docker container inspect 90046a96e675
如果 container 有 name 字段,也可以使用 name 字段。
PS:本文為本人原創,首發于 CSDN 部落格,文章位址:Docker系列筆記 之鏡像和容器釋義及基礎操作指令