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