Docker (2) 基本操作指令

基本的 Docker 指令:

  • docker pull: 令從倉庫取映像檔
  • docker images: 顯示系統上的映像檔
  • docker run: 建立一個新容器,並在其中執行指定命令
  • docker ps: 顯示容器狀態
  • docker commit: 保留變更
  • docker rmi: 刪除映像檔

1. docker pull:

docker pull 類似 git pull 讓我們可以從倉庫取得映像檔。

$ sudo docker pull ubuntu:16.04 

上面命令從 ubuntu 倉庫取得 16.04 這個 Tag 的映像檔。

pull 時的 log 如下

16.04: Pulling from library/ubuntu
660c48dd555d: Pull complete 
4c7380416e78: Pull complete 
421e436b5f80: Pull complete 
e4ce6c3651b3: Pull complete 
be588e74bd34: Pull complete 
Digest: sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79
Status: Downloaded newer image for ubuntu:16.04

2. docker images:

查看一下 pull 的結果,docker images 會顯示系統中的映像檔。

$ sudo docker images

映像檔的顯示結果如下:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               20c44cd7596f        7 days ago          123 MB

3. docker run:

run ubuntu:16.04 的 terminal:

$ sudo docker run -ti ubuntu:16.04

成功的話應該會看到 root 登入的終端機:

root@6a026cfa63eb:/# 

這時候可以在終端機中輸入 python3 看看

$ python3

這時候系統應該會告訴你它找不到 python3 這個指令,所以我們來安裝 python3 吧。

$ apt-get update
$ apt-get install python3

!!! 這時候要非常注意一件事,假如你安裝完 python3 後直接 exit 的話你所安裝的 python3 會消失,下次再啟動這個容器並不會有 python3。


4. docker ps:

為了保留我們對映像檔的變更我們需要開啟另一台終端機,並使用 docker ps 指令

$ docker ps

這時候你應該會看到我們的容器正在運行如下:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6a026cfa63eb        ubuntu:16.04        "/bin/bash"         15 minutes ago      Up 15 minutes                           gracious_lovelace

5. docker commit:

這時候我們可以在新開的終端機中 commit 我們想儲存的容器:

$ sudo docker commit -m "install python3" -a "ooxx" 6a026cfa63eb ooxx/ubuntu_p3

-m: message,-a: author,6a026cfa63eb 是 docker ps 時顯示的容器 ID,最後是 REPOSITORY 名稱。好了之後我們可以把容器 exit。

這時候我們再執行一次 sudo docker images 看看

$ sudo docker images

這時後會看到我們新建立的映像檔:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ooxx/ubuntu_p3      latest              8f3955e9ad71        3 minutes ago       162 MB
ubuntu              16.04               20c44cd7596f        7 days ago          123 MB

6. docker rmi:

使用 sudo docker rmi IMAGE_ID 可以刪除映像檔。

假設刪除的過程中系統告訴你 "image is being used by stopped container xxxx"可以使用下列指令

$ sudo docker rm $(sudo docker ps --filter "status=exited" -q)

留言

熱門文章