Dockerチートシート:基本コマンドをこの1ページに集約

Dockerチートシート:基本コマンドをこの1ページに集約

Dockerは、コンテナ化されたアプリケーションを一貫性のある仮想環境やVPS上で構築・テスト・デプロイ・管理できる、人気のオープンソースプラットフォームです。

Dockerは開発における強力なツールですが、多くのコマンドを覚えるには時間と労力がかかります。初心者の方にとっては、Dockerチートシートを手元に用意しておくことで、作業を効率化できるでしょう。

このチュートリアルでは、Dockerの基本的な仕組みと、よく使われるDockerコマンドをわかりやすく解説します。あわせて、ダウンロード可能なチートシートもご用意しています。

Dockerのアーキテクチャ

Dockerのアーキテクチャは、サーバー、クライアント、コンテナ、イメージ、レジストリの5つの主要なコンポーネントで構成されています。

Dockerサーバー

Dockerサーバー(Dockerデーモン)は、コンピュータ上でバックグラウンドで動作し、Dockerコンテナやイメージの管理を行うプログラムです。

Dockerのコマンドラインインターフェース(CLI)を使ってコンテナを作成・実行・管理する際、ユーザーはこのDockerデーモンとやり取りしています。

Dockerデーモンは、システムの起動時にコンテナを自動的に起動・停止させるための重要なプラットフォームコンポーネントです。

Dockerクライアント

Dockerクライアントは、コマンドラインインターフェース(CLI)を通じて、ユーザーがDockerデーモンとやり取りするための手段です。簡単に言えば、コンテナアプリケーションを作成・管理・実行するための、Dockerアーキテクチャの中核的な役割を担っています。

Docker CLIでコマンドを実行すると、Dockerクライアントがそのコマンドをコンピュータ上で動作するDockerデーモンに送信し、指定された処理が実行されます。Dockerクライアントは、ローカルマシンはもちろん、リモートサーバーや仮想サーバーなど、Dockerデーモンとやり取りする必要のある任意のマシンにインストールできます。

Dockerコンテナ

Dockerコンテナは、アプリケーションを実行するために必要なすべての要素を含んだパッケージです。

コンテナは高い移植性を前提に設計されており、開発者のローカル環境からテスト環境へ、あるいはテスト環境から本番環境へと、簡単に移動させることができます。

Dockerイメージ

Dockerイメージは、Dockerコンテナに含めるべき内容を定義したあらかじめ構成されたテンプレートです。多くの場合、イメージはDocker Hubのようなサイトからダウンロードされますが、Dockerfileを使って独自のカスタムイメージを作成することも可能です。

Dockerレジストリ

Dockerレジストリは、Dockerイメージを保存・管理するための中央リポジトリです。サーバーベースのシステムで、Dockerイメージを保存したり他のユーザーと共有したりできるため、アプリケーションの配布やデプロイを簡単に行えます。代表的なDockerレジストリとしては、Docker Hubが広く使われています。

Dockerコマンドチートシート

Dockerの仕組みがわかったところで、次はよく使われるDockerコマンドの例を見ていきましょう。

ビルド関連のコマンド

Dockerでは、buildコマンドを使ってDockerfileからイメージを作成します。以下は、よく使われる主なコマンド例です:

コマンド説明
docker buildカレントディレクトリ内のDockerfileからイメージを作成
docker build https://github.com/docker/rootfs.git#container:dockerリモートのGITリポジトリからイメージを作成
docker build -t imagename/tagタグ付きイメージの作成と識別の容易化
docker build https://yourserver/file.tar.gzリモートのtarアーカイブからイメージを作成
docker build -t image:1.0-<<EOFFROM busyboxRUN echo “hello world”EOFSTDINを通じて渡されたDockerfileからイメージを作成

クリーンアップ関連のコマンド

システムをクリーンに保ち、ディスク容量を節約するためには、使われていないイメージ・コンテナ・ボリュームを定期的に削除するのがおすすめです。以下のコマンドを活用しましょう:

コマンド説明
docker image prune未使用のイメージを削除
docker image prune -aコンテナに使用されていないすべてのイメージを削除
docker system prune停止中のコンテナ、未使用のネットワーク、ぶら下がりイメージ、ビルドキャッシュをすべて削除
docker image rm image特定のイメージを削除
docker rm container実行中のコンテナを削除
docker swarm leaveSwarmクラスタから離脱
docker stack rm stackname指定したSwarmスタックを削除
docker volume rm $(docker volume ls -f dangling=true -q)ぶら下がり状態のすべてのボリュームを削除
docker rm $(docker ps -a -q)停止中のすべてのコンテナを削除
docker kill $ (docker ps -q)実行中のすべてのコンテナを強制停止

コンテナ操作のコマンド

以下のコマンドを使って、Dockerコンテナを操作できます:

コマンド説明
docker start containerコンテナの起動
docker stop containerコンテナの停止
docker pause containerコンテナの一時停止
docker unpause containerコンテナの再開
docker restart containerコンテナの再起動
docker wait containerコンテナのブロック
docker export containerコンテナの内容をtarアーカイブとしてエクスポート
docker attach container実行中のコンテナへの接続
docker wait containerコンテナの終了待機と終了コードの表示
docker commit -m “commit message” -a “author” container username/image_name: tag実行中のコンテナをイメージとして保存
docker logs -ft containerコンテナのログの追跡
docker exec -ti container script.shコンテナ内でのコマンド実行
docker commit container imageコンテナからの新しいイメージの作成
docker create imageイメージからの新しいコンテナの作成

コンテナの検査コマンド

状況確認やトラブルシューティングのために、コンテナの状態を確認する必要があることもあります。以下のコマンドを使えば、各コンテナが何をしているのかを把握できます:

コマンド説明
docker ps実行中のコンテナ一覧の表示
docker -ps -aすべてのコンテナ一覧の表示
docker diff containerコンテナ内のファイルシステムの変更点の確認
docker top container指定したコンテナ内で実行中のプロセスの表示
docker inspect containerコンテナに関する低レベル情報の表示
docker logs containerコンテナのログの取得
docker stats containerコンテナのリソース使用状況の確認

イメージ管理のコマンド

以下は、よく使われるDockerイメージ管理の基本コマンドです:

コマンド説明
docker image lsイメージ一覧の表示
docker image rm mysqlイメージの削除
docker tag image tagイメージへのタグ付け
docker history imageイメージの履歴の表示
docker inspect imageイメージに関する低レベル情報の表示

実行コマンド

Dockerでは、runコマンドを使って指定したイメージからコンテナを作成します。基本的な構文は以下のとおりです:

docker run (options) image (command) (arg…)

上記の基本構文に続けて、以下のフラグを使用することで動作をカスタマイズできます:

フラグ説明
–detach , -dコンテナをバックグラウンドで実行し、コンテナIDを出力
–env , -e環境変数の設定
–hostname , -hコンテナにホスト名を設定
–label , -lコンテナにメタデータラベルを作成
–nameコンテナに名前を割り当て
–networkコンテナをネットワークに接続
–rmコンテナの停止後に自動削除
–read-onlyコンテナのファイルシステムを読み取り専用に設定
–workdir , -wコンテナ内で作業ディレクトリを設定

レジストリ関連のコマンド

Docker Hubなどのレジストリとやり取りする際は、以下のコマンドを使用します:

コマンド説明
docker loginレジストリへのログイン
docker logoutレジストリからのログアウト
docker pull mysqlレジストリからのイメージ取得
docker push repo/ rhel-httpd:latestレジストリへのイメージのプッシュ
docker search term指定したキーワードでのDocker Hubのイメージ検索

サービス関連のコマンド

Dockerのサービスを管理するには、以下の基本コマンドを使用します:

コマンド説明
docker service lsSwarmで実行中のすべてのサービスの一覧表示
docker stack services stackname指定したスタック内のサービス一覧の表示
docker service ps servicenameサービスに関連付けられたタスクの一覧表示
docker service update servicenameサービスの更新
docker service create image新しいサービスの作成
docker service scale servicename=10レプリケーションされたサービスのスケーリング
docker service logs stackname servicenameサービスのログの表示

ネットワーク関連のコマンド

Dockerネットワークとやり取りする場合は、以下のコマンドを使用します:

コマンド説明
docker network create networkname新しいネットワークの作成
docker network rm networkname指定したネットワークの削除
docker network lsすべてのネットワークの一覧表示
docker network connect networkname containerコンテナのネットワークへの接続
docker network disconnect networkname containerコンテナのネットワークからの切断
docker network inspect networknameネットワークに関する詳細情報の表示

まとめ

Dockerは、コンテナに挑戦したい方にとって非常に優れたツールです。ただし、コンテナベースの開発に慣れていない場合は、学習のハードルがやや高く感じられるかもしれません。そんなときに便利なのが、コマンドをすぐに確認できるDockerチートシートです。よく使うコマンドを毎回インターネットで検索せずに済むため、作業効率がぐっと上がります。

このチュートリアルでは、Dockerのアーキテクチャの基本を解説し、主要なDockerコマンドを一通りご紹介しました。今回のDockerチュートリアルがお役に立てば幸いです。ご不明な点があれば、お気軽にコメント欄でご質問ください。

Author
著者

Yukako Washisaka

こんにちは、Yukaです。バイリンガルの翻訳者として15年以上活動しています。アメリカではグラフィックデザインを学び、そこから翻訳の道に進みました。言葉を通じて文化と人をつなぐことにやりがいを感じていて、「伝わる」翻訳を大切にしています。 プライベートでは、家族とドライブに出かけたり、美しい景色を写真に収めたり、愛犬のトイプードルとのんびりお散歩するのが好きです。 このプロジェクトに関われることをうれしく思っています。私の翻訳が少しでもお役に立てれば光栄です。