跳至主要内容

1.6 Docker 的指令格式

首先從了解 Docker 的指令開始學習,不過 Docker 所提供的指令實在太多太雜,所以官方在後來區分成了兩個層級的指令,我們可以直接對著終端機輸入 docker,會看到 Docker 列出了很多的指令。

$ docker
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:

Management Commands:

Commands:

Options 內主要是一些 Docker 的全域設定,可以先不用理會。

剛剛提到的兩個層級的指令分別是 Management Command 以及 Command,我們用 docker container run 的指令來解說:

$ docker container run …

# 這邊的 container 是被操作的物件,也就是 Management Command
# run 則是對物件進行的動作,也就是 Command

Management Command 本身都是可以被操作的 Docker 物件,而 Command 則是對於該物件的執行動作,上面的例子就是運行一個容器。

在用 docker network create 舉一個例子應該會更有畫面:

$ docker network create …

# network 是被操作的物件,也就是 Management Command
# create 則是對物件進行的動作,也就是 Command

上面的例子就是建立一個虛擬網路。

現在對於 Docker 的指令有了一些基本的了解,您可能會想,難道要全部背起來嗎?

當然不用,有一個我自己很常使用的做法,也是我覺得 Docker 做得最好的功能之一,就是 --help 這個指令。

用法就是在你忘記任何指令的時候加上去,Docker 本身的 CLI 提示做的非常完整,絕對可以讓你找到需要的指令。

舉一個情境,我在使用 docker container run 時,忘記了後面需要加入什麼樣的指令,就放入 --help,如同下方示範,Docker 會提示我當前指令後面可以添加什麼樣的參數。

$ docker container run --help
Usage: docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

Options:
--add-host list Add a custom host-to-IP mapping (host:ip)
--attach list Attach to STDIN, STDOUT or STDERR

希望大家能養成使用 --help 的習慣,會有很多意外的收穫!

指令的縮寫

本書中的所有指令都會採用完整的寫法,最大的目的是希望讀者可以了解縮寫的原意是什麼,這在使用指令上也可以幫助記憶,一開始可以嘗試多多使用完整的指令,習慣之後再開始嘗試使用縮寫會比較好喔!