在早先的教程中,我們學過了在 RHEL CentOS 7 上安裝 Docker 並建立 docker 容器。 在本教程中,我們會學習管理 docker 容器的其他命令。
Docker 命令語法
1 2 |
$ docker [option] [command] [arguments] |
要列出 docker 支援的所有命令,執行
1 2 |
$ docker |
我們會看到如下結果,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
attach Attach to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes on a container's filesystem events Get real time events from the server exec Run a command in a running container export Export a container's filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on a container or image kill Kill a running container load Load an image from a tar archive or STDIN login Log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container network Manage Docker networks pause Pause all processes within a container port List port mappings or a specific mapping for the CONTAINER ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart a container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop a running container tag Tag an image into a repository top Display the running processes of a container unpause Unpause all processes within a container update Update configuration of one or more containers version Show the Docker version information volume Manage Docker volumes wait Block until a container stops, then print its exit code |
要進一步檢視某個命令支援的選項,執行:
1 2 |
$ docker docker-subcommand info |
就會列出 docker 子命令所支援的選項了。
測試與 Docker Hub 的連線
預設,所有映象都是從 Docker Hub 中拉取下來的。我們可以從 Docker Hub 上傳或下載作業系統映象。為了檢查我們是否能夠正常地通過 Docker Hub 上傳/下載映象,執行
1 2 |
$ docker run hello-world |
結果應該是:
1 2 3 4 |
Hello from Docker. This message shows that your installation appears to be working correctly. … |
輸出結果表示你可以訪問 Docker Hub 而且也能從 Docker Hub 下載 docker 映象。
搜尋映象
搜尋容器的映象,執行
1 2 |
$ docker search Ubuntu |
我們應該會得到可用的 Ubuntu 映象的列表。記住,如果你想要的是官方的映象,請檢查 official
這一列上是否為 [OK]
。
下載映象
一旦搜尋並找到了我們想要的映象,我們可以執行下面語句來下載它:
1 2 |
$ docker pull Ubuntu |
要檢視所有已下載的映象,執行:
1 2 |
$ docker images |
執行容器
使用已下載映象來執行容器,使用下面命令:
1 2 |
$ docker run -it Ubuntu |
這裡,使用 -it
會開啟一個 shell 與容器互動。容器啟動並執行後,我們就可以像普通機器那樣來使用它了,我們可以在容器中執行任何命令。
顯示所有的 docker 容器
要列出所有 docker 容器,執行:
1 2 |
$ docker ps |
會輸出一個容器列表,每個容器都有一個容器 id 標識。
停止 docker 容器
要停止 docker 容器,執行:
1 2 |
$ docker stop container-id |
從容器中退出
要從容器中退出,執行:
1 2 |
$ exit |
儲存容器狀態
容器執行並更改後(比如安裝了 apache 伺服器),我們可以儲存容器狀態。這會在本地系統上儲存新建立映象。
執行下面語句來提交併儲存容器狀態:
1 2 |
$ docker commit 85475ef774 repository/image_name |
這裡,commit
命令會儲存容器狀態,85475ef774
,是容器的容器 id,repository
,通常為 docker hub 上的使用者名稱 (或者新加的倉庫名稱)image_name
,是新映象的名稱。
我們還可以使用 -m
和 -a
來新增更多資訊。通過 -m
,我們可以留個資訊說 apache 伺服器已經安裝好了,而 -a
可以新增作者名稱。
像這樣:
1 2 |
docker commit -m "apache server installed"-a "Dan Daniels" 85475ef774 daniels_dan/Cent_container |
我們的教程至此就結束了,本教程講解了一下 Docker 中的那些重要的命令,如有疑問,歡迎留言。