docker
は Docker CLI の基底コマンドで、コンテナ・イメージ・ボリューム・ネットワークなどを操作します。
多くの環境では sudo
が必要になる場合があり、非特権で使うには docker
グループ追加や Rootless モードを利用します。 (Docker Documentation)
実務では「docker run
で起動」「docker ps
で状態確認」「docker logs
でログ確認」「docker exec
で内部調査」といった日常運用に使います。
構文(Syntax)
docker [GLOBAL OPTIONS] COMMAND [ARGS...]
# 代表的なサブコマンド(例)
docker run # 新しいコンテナを作成・実行
docker ps # 実行中コンテナ一覧
docker images # 取得済みイメージ一覧
docker pull/push # イメージの取得/登録
docker exec # 実行中コンテナ内でコマンドを実行
docker logs # コンテナの標準出力/標準エラーを表示
docker version # コンポーネント詳細バージョン
docker system info# システム情報(カーネル/コンテナ数など)
docker run
は必要ならイメージを自動で pull して新規コンテナを起動します。 (Docker Documentation)docker version
は各コンポーネントの詳細、docker --version
は CLI のみのバージョンを表示します。 (Docker Documentation)docker system info
は Docker 環境の全体情報を表示します。 (Docker Documentation)
主なオプション一覧
オプション | 説明 | 使用例 |
---|---|---|
-H, --host HOST | 接続先デーモン(ソケット/SSH/TCP)を指定 | docker -H ssh://user@10.0.0.5 ps (既定は Linux/macOS: unix:///var/run/docker.sock ) (Docker Documentation) |
--context NAME | 利用する「コンテキスト」を選択(リモート切替など) | docker --context prod ps (docker context use で既定切替も可) (Docker Documentation) |
--config DIR | CLI 設定ディレクトリを一時的に切替 | docker --config ~/testconfigs ps (Docker Documentation) |
-D, --debug | CLI デバッグログを有効化 | docker -D version (DevOps Stack Exchange) |
-l, --log-level LEVEL | CLI のログレベル(debug /info /warn /error /fatal ) | docker --log-level debug info (Docker Documentation) |
--tls , --tlsverify | TLS(HTTPS)接続(--tlsverify は検証あり) | docker --tlsverify -H tcp://host:2376 ps (Caddy Community) |
--tlscacert FILE / --tlscert FILE / --tlskey FILE | TLS 用 CA/証明書/鍵を指定 | docker --tlscacert ca.pem --tlscert cert.pem --tlskey key.pem ... (Docker Documentation) |
--help , --version | ヘルプ/バージョン表示 | docker --help / docker --version (Docker Documentation) |
主なグローバルオプションと環境変数(
DOCKER_HOST
,DOCKER_CONTEXT
,DOCKER_CONFIG
,DOCKER_TLS*
など)は公式 CLI リファレンスを参照してください。 (Docker Documentation)
実行例
インストール確認と環境情報を表示
説明: CLI とエンジンのバージョン、環境情報を確認します。
コマンド:
docker --version # CLI のみ
docker version # コンポーネント詳細
docker system info # 環境情報(カーネル、コンテナ数 など)
出力例(抜粋):
Docker version 27.xx, build ...
Client: Docker Engine - Community
Server: Docker Engine - Community
...
(--version
と version
の違いに注意) (Docker Documentation)
まずは Hello World(動作確認)
説明: イメージが無ければ自動で取得し、メッセージを出して終了します。
コマンド:
docker run hello-world
出力例(抜粋):
Hello from Docker!
This message shows that your installation appears to be working correctly.
Web サーバを起動しポート公開
説明: nginx
をバックグラウンドで起動し、localhost:8080
へ公開します。
コマンド:
docker run -d --name web -p 8080:80 nginx
docker ps
curl -I http://127.0.0.1:8080/
(-p HOST:CONTAINER
でポート公開) (Docker Documentation)
リモートの Docker に接続(コンテキスト/ホスト指定)
説明: 別ホストのデーモンへ接続して一覧を取得します。
コマンド:
docker --context prod ps # 事前に `docker context create` 済み
# もしくは -H で直接指定
docker -H ssh://user@10.0.0.5 ps
エラー例:権限不足でデーモンに接続できない
説明: Linux で docker
グループ未所属だとソケットにアクセスできず失敗します。
コマンド:
docker ps
# 例) Got permission denied while trying to connect to the Docker daemon socket...
対処:
# 1) docker グループへ追加
sudo groupadd docker # 既に存在する場合は不要
sudo usermod -aG docker $USER
newgrp docker # 反映(またはログアウト/ログイン)
# 2) あるいは Rootless モードを検討
(docker
グループはroot 相当の権限を与える点に注意) (Docker Documentation)
関連コマンド
dockerd
: Docker デーモン本体。CLI と API を介してコンテナを管理します。 (Docker Documentation)docker compose
: マルチコンテナ構成を YAML で定義・管理。ctr
/nerdctl
: containerd 系ツール(Docker 代替/互換 CLI)。podman
: デーモンレス&Rootless を重視した互換 CLI。docker context
: 複数デーモン/環境の切替管理。 (Docker Documentation)
備考
- 非特権での利用:
sudo
なしで操作したい場合はdocker
グループに所属させるか、Rootless モードを利用します。docker
グループは root 相当の権限を付与するため、セキュリティポリシーに合わせて運用してください。 (Docker Documentation) - 接続方式:
-H/--host
でunix://
(既定),ssh://
,tcp://
などを指定可能です。TLS を用いる場合は 2376/TLS が慣例です(非 TLS の 2375 は非推奨)。(Docker Documentation) - ログの扱い:
docker logs
はコンテナの標準出力/標準エラーを表示します。収集/保存は ログドライバ側の設定で制御できます。 (Docker Documentation) - 設定ファイル: CLI 設定は既定で
~/.docker/config.json
。--config
とDOCKER_CONFIG
で切替可能です。 (Docker Documentation) - 環境変数:
DOCKER_HOST
,DOCKER_CONTEXT
,DOCKER_TLS*
,HTTP(S)_PROXY
などで挙動を変更できます。 (Docker Documentation)
参考
- Docker CLI リファレンス(
docker
基底コマンド・環境変数・-H
など) (Docker Documentation) docker run
リファレンス(コンテナ起動) (Docker Documentation)docker system info
リファレンス(環境情報) (Docker Documentation)docker version
リファレンス(表示の違いも記載) (Docker Documentation)- Linux ポストインストール(docker グループ/Rootless/自動起動等) (Docker Documentation)
- Rootless モード概要(非 root でデーモン/コンテナを実行) (Docker Documentation)
- コンテキストの概念と切替(
docker context
) (Docker Documentation)
コメント