Docker チートシート

よく使用されるDockerコマンドのパラメータ

目次

ここに Docker cheat sheet があります。これは、インストールからコンテナの実行、クリーンアップまで、最も重要なコマンド および概念をカバーしています。

docker logo

インストール

Ubuntu 上でのインストール

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker

Docker Compose のインストール

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

一般的な Docker コマンド

バージョンとシステム情報

docker version          # Docker CLI およびデーモンのバージョンを表示
docker system info      # Docker 環境に関するデータを一覧表示
docker help             # ヘルプインデックスを表示
docker <command> --help # 特定のコマンドのヘルプ情報を表示

ログインとログアウト

docker login            # Docker Hub にログイン
docker logout           # Docker Hub からログアウト

イメージ管理

イメージの一覧表示

docker images           # すべてのイメージを一覧表示
docker images -a        # 中間イメージを含むすべてのイメージを一覧表示

イメージのプル

docker pull <image-name:version> # Docker Hub からイメージをダウンロード

イメージのビルド

docker build -t <image-name> . # 現在のディレクトリの Dockerfile からイメージをビルド
docker build -f <Dockerfile-path> -t <image-name> . # 特定の Dockerfile からイメージをビルド
docker build --build-arg foo=bar . # ビルド引数付きでイメージをビルド
docker build --pull . # FROM 指令で参照されているイメージの最新バージョンをプル
docker build --quiet . # 出力を表示せずにイメージをビルド

イメージのタグ付けとプッシュ

docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>

イメージの削除

docker rmi <image-name>        # 特定のイメージを削除
docker image prune             # 使用されていないイメージを削除
docker image prune -a          # すべての使用されていないイメージを削除

未使用のイメージの削除

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

イメージのアンタグ

docker rmi repository/image-name:tag

コンテナ管理

コンテナの実行

docker run -itd --name <container-name> <image-name> # デタッチドモードでコンテナを実行
docker run -it -p <host-port>:<docker-port> <image-name> # ポートマッピング付きでコンテナを実行
docker run -it --name <container-name> <image-name> # インタラクティブモードでコンテナを実行

コンテナの一覧表示

docker ps                  # 実行中のコンテナを一覧表示
docker ps -a               # すべてのコンテナを一覧表示
docker ps -s               # CPU およびメモリ使用量を含む実行中のコンテナを一覧表示

コンテナの起動、停止、再起動

docker start <container-name>   # 停止中のコンテナを起動
docker stop <container-name>    # 実行中のコンテナを停止
docker restart <container-name> # コンテナを再起動

コンテナの削除

docker rm <container-name>      # 停止中のコンテナを削除
docker rm -f <container-name>   # コンテナを強制的に削除
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # すべてのコンテナを削除

すべての停止中のコンテナの削除

docker container prune

コンテナへの接続

docker attach <container-name>  # 実行中のコンテナに接続
docker exec -it <container-name> bash # 実行中のコンテナでコマンドをインタラクティブに実行

コンテナの検査

docker inspect <container-name> # コンテナを検査
docker logs <container-name>    # コンテナのログを表示
docker port <container-name>    # コンテナのポートマッピングを表示

ネットワーク管理

docker network ls            # すべてのネットワークを一覧表示
docker network create <network-name> # 新しいネットワークを作成
docker network rm <network-name>    # ネットワークを削除

ボリューム管理

docker volume ls             # すべてのボリュームを一覧表示
docker volume create <volume-name> # 新しいボリュームを作成
docker volume rm <volume-name>    # ボリュームを削除
docker run -v <host-path>:<container-path> <image-name> # ボリュームをマウント

Docker Compose

基本コマンド

docker-compose up           # docker-compose.yml で定義されたサービスを起動
docker-compose up -d        # デタッチドモードでサービスを起動
docker-compose down         # サービスを停止および削除
docker-compose ps           # 実行中のサービスを一覧表示
docker-compose logs         # サービスのログを表示
docker-compose start        # サービスを起動
docker-compose stop         # サービスを停止
docker-compose pause        # サービスを一時停止
docker-compose unpause      # サービスの一時停止を解除

Dockerfile コマンド

Dockerfile からイメージをビルド

docker build -t <image-name> <Dockerfile-path> # Dockerfile からイメージをビルド

Dockerfile の例

FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]

セキュリティとシークレット

Docker シークレット

docker secret create <secret-name> <file> # シークレットを作成
docker secret ls                         # すべてのシークレットを一覧表示
docker secret rm <secret-name>          # シークレットを削除

Docker セキュリティ

  • Docker シークレットを使用して、敏感なデータを中央で管理し、コンテナに安全に送信してください。
  • シークレットは、トランジット中および Docker スワーム内での保存時に暗号化されます。

クリーンアップ

使用されていないリソースの削除

docker system prune          # 使用されていないデータ(イメージ、コンテナ、ネットワーク、ボリューム)を削除
docker image prune           # 使用されていないイメージを削除
docker container prune       # 使用されていないコンテナを削除
docker network prune         # 使用されていないネットワークを削除
docker volume prune          # 使用されていないボリュームを削除

未タグのイメージの削除

大きなコンパイルの後、docker images コマンドからこのような画像が表示されることがあります:

大量の未タグのイメージ

タグを持つこれらのイメージを削除するには:

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

上記は古く、互換性がないです。dangling=true パラメータは非推奨です。代わりに使用してください:

docker system prune

これにより、以下の警告が表示されます:

WARNING! This will remove:
	- all stopped containers
	- all volumes not used by at least one container
	- all networks not used by at least one container
	- all dangling images

この警告に対して「Yes」を選択することもあります。

この cheat sheet は、Docker コンテナ、イメージ、ネットワーク、ボリュームなどを管理するために必要な基本的なコマンドと概念をカバーしています。より詳しい情報が必要な場合は、オンラインで利用可能な詳細なガイドやチュートリアルを参照してください。

有用なリンク