はじめに
先日Dockerのインストール手順を紹介しましたので、今回はDockerの基礎の使い方を紹介します。Docker上でコンテナーの起動方法、停止方法、または不要なコンテナの削除する方法が分からない初心者の方に少しでも役に立てればいいと思いまとめました。
初心者向けのコマンドのまとめ
Docker上で作成したイメージを確認する方法
docker <options> images
以下のオプションを加えることができます。
-a, --all=false 全てのイメージを表示(デフォルトは中間コンテナを非表示)
--digests=false digest 値を表示
-f, --filter=[] 指定した状況に応じて出力を整形:
- dangling=(true|false)
- label=<キー> or label=<キー>=<値>
- before=(<イメージ名>[:タグ]|<image-id>|<image@digest>)
- since=(<イメージ名>[:タグ]|<image-id>|<image@digest>)
--help 使い方の表示
--no-trunc=false トランケート(truncate)を出力しない
-q, --quiet=false 整数値の ID のみ表示

Docker上で不要なイメージを削除するコマンド
docker rmi [オプション] イメージ [イメージ...]
1つまたは複数のイメージを削除できます。
また以下のオプションを加えることができます。
-f, --force イメージの強制削除
--help 使い方の表示
--no-prune タグが無い親イメージを削除しない
Docker Hubからイメージを取得して起動させるコマンド
Docker Hub には多くの構築済みのイメージがあります。自分で定義や設定をしなくても、イメージを Pull
(取得)して、利用できます。例えばWordPress を構築したい場合には、すでに Docker Hub に WordPress イメージがあるので、そのイメージを取得して利用できます。

docker pull [オプション] 名前[:タグ] |
以下のオプションを加えることができます。
-a, --all-tags=false リポジトリでタグ付けられた全てのイメージをダウンロード
--disable-content-trust=true イメージの認証をスキップ
--help

イメージから起動させるコマンド
以下のコマンドでPullしたイメージまたは定義したイメージを起動させることができます。
docker run [オプション] イメージ [コマンド] [引数...]
また、以下のオプションを加えることができます。

-a, --attach=[] STDIN、STDOUT、STDERR にアタッチする
--add-host=[] ホストから IP アドレスのマッピングをカスタマイズして追加 (host:ip)
--blkio-weight=0 ブロック IO ウエイト (相対ウエイト)
--blkio-weight-device=[] ブロック IO ウエイト (相対デバイス・ウエイト。書式: `デバイス名:ウエイト`)
--cpu-shares=0 CPU 共有 (相対ウエイト)
--cap-add=[] Linux ケーパビリティの追加
--cap-drop=[] Linux ケーパビリティの削除
--cgroup-parent="" コンテナ用のオプション親 cgroup を指定
--cidfile="" コンテナ ID をファイルに書き出し
--cpu-percent=0 コンテナが実行可能な CPU 使用率のパーセントを制限。Windowsのみ
--cpu-period=0 CPU CFS (Completely Fair Scheduler) ペイロードの制限
--cpu-quota=0 CPU CFS (Completely Fair Scheduler) クォータの制限
--cpuset-cpus="" 実行を許可する CPU (0-3, 0,1)
--cpuset-mems="" 実行を許可するメモリ必要量 (0-3, 0,1)
-d, --detach コンテナをバックグラウンドで実行し、コンテナ ID を表示
--detach-keys コンテナのデタッチに使うエスケープ・キー・シーケンスを設定
--device=[] ホスト・デバイスをコンテナに追加
--device-read-bps=[] デバイスからの読み込みレート (バイト/秒) を制限 (例: --device-read-bps=/dev/sda:1mb)
--device-read-iops=[] デバイスからの読み込みレート (IO/秒) を制限 (例: --device-read-iops=/dev/sda:1000)
--device-write-bps=[] デバイスへの書き込みレート (バイト/秒) を制限 (例: --device-write-bps=/dev/sda:1mb)
--device-write-iops=[] デバイスへの書き込みレート (IO/秒) を制限 (例: --device-write-bps=/dev/sda:1000)
--disable-content-trust=true イメージの認証をスキップ
--dns=[] カスタム DNS サーバの指定
--dns-opt=[] カスタム DNS オプションの指定
--dns-search=[] カスタム DNS 検索ドメインの指定
-e, --env=[] 環境変数を指定
--entrypoint="" イメージのデフォルト ENTRYPOINT を上書き
--env-file=[] ファイルから環境変数を読み込み
--expose=[] ポートまたはポート範囲を露出
--group-add=[] 参加するグループを追加
-h, --hostname="" コンテナのホスト名
--help 使い方の表示
-i, --interactive コンテナの STDIN にアタッチ
--ip="" コンテナの IPv4 アドレス (例: 172.30.100.104)
--ip6="" コンテナの IPv6 アドレス (例: 2001:db8::33)
--ipc="" 使用する IPC 名前空間
--isolation="" コンテナの分離(独立)技術
--kernel-memory="" Kernel メモリ上限
-l, --label=[] コンテナにメタデータを指定 (例: --label=com.example.key=value)
--label-file=[] 行ごとにラベルを記述したファイルを読み込み
--link=[] 他のコンテナへのリンクを追加
--link-local-ip=[] コンテナとリンクするローカルの IPv4/IPv6 アドレス (例: 169.254.0.77, fe80::77)
--log-driver="" コンテナ用のログ記録ドライバを追加
--log-opt=[] ログドライバのオプションを指定
-m, --memory="" メモリ上限
--mac-address="" コンテナの MAC アドレス (例: 92:d0:c6:0a:29:33)
--io-maxbandwidth="" システム・デバイスの IO 帯域に対する上限を指定(Windowsのみ)。
書式は `<数値><単位>`。単位はオプションで `b` (バイト/秒)、
`k` (キロバイト/秒)、 `m` (メガバイト/秒)、 `g` (ギガバイト/秒)。
単位を指定しなければ、システムはバイト/秒とみなす。
--io-maxbandwidth と --io-maxiops は相互排他オプション
--io-maxiops=0 システム・ドライブの最大 IO/秒に対する上限を指定 *Windowsのみ)
--io-maxbandwidth と --io-maxiops は相互排他オプション
--memory-reservation="" メモリのソフト上限
--memory-swap="" 整数値の指定はメモリにスワップ値を追加。-1は無制限スワップを有効化
--memory-swappiness="" コンテナ用メモリのスワップ程度を調整。整数値の 0 から 100 で指定
--name="" コンテナに名前を割り当て
--net="bridge" : コンテナをネットワークに接続
'bridge': docker ブリッジ上でコンテナ用に新しいネットワーク・スタックを作成
'none': コンテナにネットワーク機能を付けない
'container:<name|id>': 他のコンテナ用ネットワーク・スタックを再利用
'host': コンテナ内でホスト側ネットワーク・スタックを使用
'NETWORK': 「docker network create」コマンドでユーザ作成したネットワークを使用
--net-alias=[] コンテナにネットワーク内部用のエイリアスを追加
--oom-kill-disable コンテナの OOM Killer を無効化するかどうか指定
--oom-score-adj=0 コンテナに対してホスト側の OOM 優先度を設定 ( -1000 ~ 1000 を指定)
-P, --publish-all 全ての露出ポートをランダムなポートに公開
-p, --publish=[] コンテナのポートをホスト側に公開
--pid="" 使用する PID 名前空間
--pids-limit=-1 コンテナの pids 制限を調整 (kernel 4.3 以上は -1 で無制限に設定)
--privileged このコンテナに対して拡張権限を与える
--read-only コンテナのルート・ファイルシステムを読み込み専用としてマウント
--restart="no" 再起動ポリシー (no, on-failure[:max-retry], always, unless-stopped)
--rm コンテナ終了時、自動的に削除
--runtime="" コンテナで使うランタイム名を指定
--shm-size=[] `/dev/shm` のサイズ。書式は `<数値><単位>`. `数値` は必ず `0` より大きい。単位はオプションで `b` (bytes)、 `k` (kilobytes)、 `m` (megabytes)、 `g` (gigabytes) を指定可能。単位を指定しなければ、システムは bytes を使う。数値を指定しなければ、システムは `64m` を使う
--security-opt=[] セキュリティ・オプション
--sig-proxy=true 受信したシグナルをプロセスにプロキシ
--stop-signal="SIGTERM" コンテナの停止シグナル
--storage-opt=[] コンテナごとにストレージ・ドライバのオプションを指定
--sysctl[=*[]*]] 実行時に名前空間カーネル・パラメータを調整
-t, --tty 疑似ターミナル (pseudo-TTY) を割り当て
-u, --user="" ユーザ名または UID
--userns="" コンテナのユーザ名前空間
'host': Docker ホストで使うユーザ名前空間
'': Docker デーモンのユーザ名前空間を指定するには `--userns-remap` オプションを使う
--ulimit=[] Ulimit オプション
--uts="" 使用する UTS 名前空間
-v, --volume=[ホスト側ソース:]コンテナ側送信先[:<オプション>]
ボリュームを拘束マウント。カンマ区切りで指定
`オプション` は [rw|ro], [z|Z], [[r]shared|[r]slave|[r]private], [nocopy]
'ホスト側ソース' は絶対パスまたは名前の値
--volume-driver="" コンテナのボリューム・ドライバ
--volumes-from=[] 指定したコンテナからボリュームをマウント
-w, --workdir="" コンテナ内の作業用ディレクトリを指定
Docker上で稼働中のコンテナを確認するコマンド
docker ps
以下のオプションを加えることができます。
-a, --all 全てのコンテナを表示 (デフォルトは実行中コンテナのみ表示)
-f, --filter=[] 以下の状況に応じて出力をフィルタ:
- exited=<整数> 終了コードを <整数> で指定
- label=<key> または label=<key>=<value>
- status=(created|restarting|running|paused|exited)
- name=<文字列> コンテナ名
- id=<ID> コンテナ ID
- before=(<コンテナ名>|<コンテナID>)
- since=(<コンテナ名>|<コンテナID>)
- ancestor=(<イメージ名>[:タグ]|<イメージID>|<イメージ@ダイジェスト値>) - 特定のイメージや子孫から作成されたコンテナ
- volume=(<ボリューム名>|<マウント・ポイント>)
--format=[] Go テンプレートを使いコンテナの表示を整形
--help 使い方の表示
-l, --latest 最後に作成したコンテナを表示 (どのような状態でも)
-n=-1 直近で作成した n コンテナを表示 (どのような状態でも)
--no-trunc トランケート (truncate) を出力しない
-q, --quiet 整数値の ID のみ表示
-s, --size 合計ファイルサイズを表示

コンテナでコマンドを実行させるコマンド
docker exec [オプション] コンテナ コマンド [引数...]
以下のオプションを加えることができます。
-d, --detach=false デタッチド・モード: コマンドをバックグラウンドで実行
--detach-keys デタッチド・コンテナに特定のエスケープ・キー・シーケンスを設定
--help=false 使い方の表示
-i, --interactive=false アタッチしていなくても STDIN をオープンにし続ける
--privileged=false コマンドに拡張 Linux ケーパビリティの追加
-t, --tty=false 疑似ターミナル (pseudo-TTY) の割り当て
-u, --user= ユーザ名か UID (書式: <名前|uid>[:<グループ|gid>])

ローカルホストのファイルをコンテナにコピーするコマンド
docker cp <ローカル・パス> <コンテナ:パス>
コンテナからファイルをローカルにコピーするコマンド
docker cp <コンテナ:パス> <ローカル・パス>
初心者向けの情報はこちらから参照できます。
Docker インストール手順

【初心者向け】5分でUbuntu 20.04にDockerをインストール
Ubuntu Desktop 版にDockerをインストールする手順を紹介します。5分もかからずにUbuntuにDockerをインストールしてからDockerの動作の確認までの手順を紹介します。
Dockerの基礎のコマンドのまとめ

【初心者向け】Dockerコマンドまとめ
Docker上でコンテナーの起動方法、停止方法、または不要なコンテナの削除する方法が分からない初心者の方にこの記事を参考にしていただければ解決できると思います。
コメント