Docker は万能の達人です: コンテナ化タスクの 90% を解決する 10 個の主要コマンド

Docker は万能の達人です: コンテナ化タスクの 90% を解決する 10 個の主要コマンド

Docker は、アプリケーションとその依存関係をパッケージ化する軽量で効率的な方法であるコンテナ化を導入することで、ソフトウェア開発とデプロイメントの世界に革命をもたらしました。

Docker を使用すると、開発者はさまざまなプラットフォームで安定して実行できるコンテナーと呼ばれる分離された環境を作成できるため、アプリケーションの構築、展開、拡張が容易になります。ただし、Docker のパワーを真に発揮するには、コンテナを効果的に管理するための基本的なコマンドを習得する必要があります。

この記事では、コンテナ管理プロセスをスムーズにするために、すべての開発者とシステム管理者が知っておくべき 10 個の重要な Docker コマンドについて説明します。コンテナの作成と起動から、利用可能なイメージの一覧表示、そしてそれらを正常に停止するまで、これらのコマンドは Docker 環境を効果的に管理するための基礎となります。

これらのコマンドを習得することで、Docker コンテナを効率的かつ効果的に管理するための強固な基盤が得られます。 Docker を使い始めたばかりの方でも、コンテナ管理スキルを向上させたい経験豊富なユーザーでも、この記事では、Docker の世界を自信を持ってナビゲートするのに役立つ貴重な洞察と実用的な例を提供します。さらに深く掘り下げて、Docker のコンテナ化機能の可能性を最大限に引き出してみましょう。

1. docker 実行

docker run コマンドは、Docker イメージに基づいて新しいコンテナを作成して起動するために使用されます。コンテナを実行するための基本的な構文は次のとおりです。

 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  1. オプション: ポート、ボリューム、環境変数などの指定など、コンテナの動作をカスタマイズするために使用できる追加オプション。
  2. IMAGE : コンテナの作成に使用される Docker イメージの名前。
  3. COMMAND: (オプション) コンテナ内で実行するコマンド。
  4. ARG: (オプション) コンテナ内のコマンドに渡される引数。

たとえば、「ubuntu」イメージに基づいてコンテナを実行し、コンテナ内で ls コマンドを実行するには、次のコマンドを使用します。

 docker run ubuntu ls

これにより、「ubuntu」イメージを使用して新しいコンテナが作成され、ls コマンドが実行され、コンテナのファイルシステム内のファイルとディレクトリが一覧表示されます。

指定されたイメージがローカルで利用できない場合は、コンテナを作成する前に Docker は Docker レジストリからイメージを自動的にプルすることに注意してください。

2. docker ps

docker ps コマンドは、Docker ホスト上で実行されているコンテナを一覧表示するために使用されます。コンテナ ID、使用されているイメージ、実行中のコマンド、ステータス、ポート マッピングなどの情報を提供します。基本的な構文は次のとおりです。

 docker ps [OPTIONS]

デフォルトでは、docker ps は実行中のコンテナのみを表示します。停止または終了したコンテナも含め、すべてのコンテナを表示する場合は、 -a オプションを使用します。

 docker ps -a

これにより、Docker ホスト上のすべてのコンテナのリストと、それぞれの詳細が表示されます。

docker ps コマンドの出力には、CONTAINER ID、IMAGE、COMMAND、CREATED、STATUS、PORTS、NAMES などの列が含まれます。列の簡単な説明は次のとおりです。

  • コンテナ ID: コンテナの一意の識別子。
  • IMAGE: コンテナの作成に使用されるイメージの名前または ID。
  • COMMAND: コンテナ内で実行されるコマンド。
  • CREATED: コンテナが作成された時刻を示すタイムスタンプ。
  • STATUS: コンテナの現在の状態 (実行中、停止、終了など)。
  • ポート: コンテナとホスト システム間のポート マッピング。
  • 名前: コンテナの自動生成された名前、またはユーザーが指定した名前。

デフォルトでは、docker ps コマンドはコンテナの概要ビューを提供します。より詳細な情報が必要な場合は、--format オプションに続いてフォーマット テンプレートを追加できます。例えば:

 docker ps --format "ID: {{.ID}}, Image: {{.Image}}, Status: {{.Status}}"

これにより、各コンテナのコンテナ ID、イメージ、およびステータス情報のみが表示されます。 docker ps コマンドを実行するには、システムに Docker がインストールされ、実行されている必要があることに注意してください。

3. docker を停止する

docker stop コマンドは、実行中の 1 つ以上のコンテナを停止するために使用されます。コンテナのメイン プロセスに信号を送信し、正常にシャットダウンするように要求します。基本的な構文は次のとおりです。

 docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • オプション: 停止動作をカスタマイズするために使用できる追加オプション。たとえば、--time または -t オプションを使用してタイムアウトを指定すると、コンテナを強制的に終了するのではなく、正常に終了するための時間を長くすることができます。
  • CONTAINER: 停止するコンテナの名前または ID。スペースで区切って複数のコンテナを指定できます。

たとえば、my-container という名前のコンテナを停止するには、次のコマンドを使用します。

 docker stop my-container

複数のコンテナを停止する場合は、コンテナの名前または ID をスペースで区切ってリストします。

 docker stop container1 container2 container3

docker stop コマンドが実行されると、Docker はコンテナに SIGTERM シグナルを送信し、コンテナ内のプロセスが必要なクリーンアップ タスクを実行して正常にシャットダウンできるようにします。プロセスが指定されたタイムアウト (デフォルトは 10 秒) 内に停止しない場合、Docker は SIGKILL シグナルを送信してコンテナを強制的に終了できます。

4. docker rm

docker rm コマンドは、停止した 1 つ以上のコンテナを Docker ホストから削除するために使用されます。指定されたコンテナを完全に削除し、関連するリソースを解放します。基本的な構文は次のとおりです。

 docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • オプション: 削除動作をカスタマイズするために使用できる追加オプション。たとえば、実行中のコンテナを強制的に削除するには、-f または --force オプションを使用できます。
  • CONTAINER: 削除するコンテナの名前または ID。スペースで区切って複数のコンテナを指定できます。

たとえば、my-container という名前のコンテナを削除するには、次のコマンドを使用します。

 docker rm my-container

複数のコンテナを削除する場合は、コンテナの名前または ID をスペースで区切ってリストします。

 docker rm container1 container2 container3

デフォルトでは、docker rm コマンドは停止されたコンテナのみを削除します。実行中のコンテナも削除する場合は、-f または --force オプションを使用します。

 docker rm -f container1 container2

コンテナを削除すると、コンテナ内のすべてのデータや変更内容を含めてコンテナが完全に削除されることに注意してください。実行中のコンテナを削除する場合は、まずコンテナが停止されてから削除されます。

さらに、docker rm コマンドで -v または --volumes オプションを使用すると、コンテナーに関連付けられているボリューム (存在する場合) も削除できます。

5. Dockerイメージ

docker images コマンドは、Docker ホストで使用可能な Docker イメージを一覧表示するために使用されます。リポジトリ、タグ、イメージ ID、作成日、サイズなど、イメージに関する情報が表示されます。基本的な構文は次のとおりです。

 docker images [OPTIONS] [REPOSITORY[:TAG]]
  • オプション: 出力をカスタマイズしたり、画像をフィルタリングしたりするために使用できる追加オプション。たとえば、--format オプションを使用して出力の形式テンプレートを指定したり、-a または --all オプションを使用して中間イメージ レイヤーを含むすべてのイメージを表示したりできます。
  • REPOSITORY: (オプション) イメージのリポジトリ名。
  • TAG: (オプション) 画像のタグ。

デフォルトでは、docker images コマンドは Docker ホストで使用可能なすべてのイメージを一覧表示します。例えば:

 docker images

これにより、REPOSITORY、TAG、IMAGE ID、CREATED、SIZE などの列を含むイメージのテーブルが表示されます。 REPOSITORY と TAG を組み合わせて、イメージの一意の識別子を形成します。

リポジトリまたはタグに基づいてイメージをフィルタリングする場合は、リポジトリ名やタグ名をパラメータとして指定できます。たとえば、特定のリポジトリからイメージを一覧表示するには、次のようにします。

 docker images my-repo

特定のタグが付いた画像を一覧表示します。

 docker images my-repo:my-tag

オプションを組み合わせて出力をさらにカスタマイズすることもできます。たとえば、中間画像を含むすべての画像を表示し、カスタム形式で出力するには、次のようにします。

 docker images -a --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

これにより、イメージが表形式で表示され、イメージ ID、リポジトリ、タグ情報のみが表示されます。

6. docker rmi

docker rmi コマンドは、Docker ホストから 1 つ以上の Docker イメージを削除するために使用されます。指定されたイメージをローカル イメージ キャッシュから完全に削除します。基本的な構文は次のとおりです。

 docker rmi [OPTIONS] IMAGE [IMAGE...]
  • オプション: 削除動作をカスタマイズするために使用できる追加オプション。たとえば、-f または --force オプションを使用すると、実行中のコンテナによって使用されている場合でも、イメージを強制的に削除できます。
  • IMAGE: 削除するイメージの名前または ID。スペースで区切って複数の画像を指定できます。

たとえば、my-image:latest という名前のイメージを削除するには、次のコマンドを使用します。

 docker rmi my-image:latest

複数の画像を削除する場合は、画像の名前または ID をスペースで区切ってリストします。

 docker rmi image1 image2 image3

デフォルトでは、docker rmi コマンドはどのコンテナでも使用されていないイメージのみを削除します。現在 1 つ以上のコンテナによって使用されているイメージを削除しようとすると、Docker はエラーを報告します。この場合、-f または --force オプションを使用して、使用中であってもイメージを強制的に削除できます。

 docker rmi -f my-image:latest

画像を削除すると、ローカル画像キャッシュから完全に削除されることに注意してください。将来イメージを再度使用する必要がある場合は、Docker レジストリからイメージをプルするか、Dockerfile を使用して再構築する必要があります。

さらに、docker rmi コマンドで --no-prune オプションを使用すると、タグなしの親イメージが存在する場合に自動的に削除されないようにすることができます。

7. Dockerビルド

docker build コマンドは、Dockerfile に基づいて Docker イメージを構築するために使用されます。カスタム イメージを作成するために必要な指示と依存関係を定義できます。基本的な構文は次のとおりです。

 docker build [OPTIONS] PATH | URL | -
  • オプション: ビルド プロセスをカスタマイズするために使用できる追加オプション。一般的なオプションには、イメージの名前とオプションのタグを指定する -t または --tag、Dockerfile の場所を指定する -f または --file、ビルド時の変数を Dockerfile に渡す --build-arg などがあります。
  • パスURL | -: Dockerfile を含むディレクトリへのパス、Git リポジトリの URL、または標準入力からビルドするための「-」。

たとえば、現在のディレクトリの Dockerfile を使用してイメージをビルドし、my-image:latest としてタグ付けするには、次のコマンドを使用します。

 docker build -t my-image:latest .

「.」ここでは、Dockerfile が現在のディレクトリにあることを意味します。

Dockerfile が別の場所に存在する場合は、 -f オプションを使用してそのパスを指定できます。

 docker build -t my-image:latest -f /path/to/Dockerfile .

ビルド プロセス中に、Docker は Dockerfile 内の指示を読み取り、各ステップを実行し、必要に応じて中間イメージを作成します。結果の画像には、指定された名前とオプションのタグが付けられます。

ファイルのコピー、依存関係のインストール、環境変数の設定、ポートの公開などの追加の指示を Dockerfile で定義して、ニーズに合わせてイメージをカスタマイズできます。

8. docker 実行

docker exec コマンドは、実行中の Docker コンテナ内でコマンドを実行するために使用されます。対話型モードまたは分離モードでコマンドを実行できます。基本的な構文は次のとおりです。

 docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • オプション: 実行動作をカスタマイズするために使用できる追加オプション。よく使用されるオプションには、対話型コマンド用に STDIN を開いたままにする -i または --interactive、疑似端末を割り当てる -t または --tty、コマンドをバックグラウンドで実行する -d または --detach などがあります。
  • CONTAINER: コマンドを実行するコンテナの名前または ID。
  • COMMAND: コンテナ内で実行されるコマンド。
  • ARG: (オプション) コンテナ内のコマンドに渡される引数。

たとえば、my-container という名前のコンテナ内で ls コマンドを実行するには、次のコマンドを使用します。

 docker exec my-container ls

これにより、指定されたコンテナ内で「ls」コマンドが実行され、ファイルとディレクトリの一覧が表示されます。

コンテナ内でシェルを起動するなど、対話型コマンドを実行する場合は、-it オプションを使用することもできます。

 docker exec -it my-container bash

これにより、コンテナ内で対話型シェル セッションが開始され、複数のコマンドを対話的に実行できるようになります。

docker exec コマンドを使用するには、コンテナが実行されている必要があることに注意してください。停止または終了したコンテナでコマンドを実行する必要がある場合は、docker start コマンドを使用してコンテナを起動し、docker exec を使用してコマンドを実行できます。

9. docker プル

docker pull コマンドは、Docker レジストリ (Docker Hub など) から Docker イメージをダウンロードするために使用されます。指定された画像を取得し、ローカル画像キャッシュに保存します。基本的な構文は次のとおりです。

 docker pull [OPTIONS] IMAGE[:TAG]
  • オプション: ダウンロード プロセスをカスタマイズするために使用できる追加オプション。よく使用されるオプションには、イメージの利用可能なすべてのタグをプルする --all-tags、プルするイメージのプラットフォームを指定する --platform、進行状況の出力を抑制する --quiet などがあります。
  • IMAGE: Docker レジストリからプルするイメージの名前。リポジトリ/イメージまたはリポジトリ/イメージ:タグの形式にすることができます。タグが指定されていない場合、デフォルトは最新になります。

たとえば、Docker Hub から「ubuntu」イメージの最新バージョンを取得するには、次のコマンドを使用します。

 docker pull ubuntu

特定のタグ付きバージョンのイメージをプルする場合は、タグを指定できます。

 docker pull ubuntu:20.04

指定されたイメージは Docker レジストリからダウンロードされ、ローカル イメージ キャッシュに保存されます。イメージをプルしたら、それを使用して Docker ホスト上でコンテナを作成し、実行できます。

10. dockerプッシュ

docker push コマンドは、Docker イメージを Docker レジストリ (Docker Hub やプライベート レジストリなど) にアップロードするために使用されます。ローカルで構築または変更したイメージを他のユーザーと共有できます。基本的な構文は次のとおりです。

 docker push [OPTIONS] NAME[:TAG]
  • オプション: アップロード プロセスをカスタマイズするために使用できる追加オプション。よく使用されるオプションには、イメージのすべてのタグをアップロードする --all-tags、コンテンツの信頼性の検証をスキップする --disable-content-trust、進行状況の出力を抑制する --quiet などがあります。
  • NAME: アップロードする画像の名前。リポジトリとイメージ名を含める必要があります。たとえば、「ユーザー名/倉庫名:イメージ名」などです。
  • TAG: (オプション) アップロードする画像のタグ。タグが指定されていない場合は、最新のタグがデフォルトで使用されます。

イメージをプッシュする前に、Docker レジストリに認証されていることを確認する必要があります。ユーザー名、パスワード、レジストリの URL (必要な場合) を指定して、docker login コマンドを使用してレジストリにログインできます。

たとえば、Docker Hub にログインしているとして、タグ「latest」が付いた my-image という名前のイメージを Docker Hub にプッシュするには、次のコマンドを使用します。

 docker push username/my-image:latest

指定されたイメージは Docker レジストリにアップロードされ、他のユーザーがダウンロードして使用できるようになります。

<<:  クラウド容量の増加とオンプレミスデータセンターの将来

>>:  SaaS セキュリティに関する 6 つのベスト プラクティスと戦略

推薦する

WeChatのユーザー数は3億人を突破。SEO担当者はまだ冷静でいられるだろうか?

1. WeChatとは何ですか? WeChat は、2012 年 1 月 21 日に Tencent...

Kubernetes をより良くする 11 個のツール

[51CTO.com クイック翻訳] 強力で大規模なものであっても、すべてのニーズを満たすことができ...

ramnode-35% オフ/シアトル KVM+SSD オンライン在庫一掃

Ramnode の Seattle KVM VPS の SSD ハード ドライブは長い間在庫切れでし...

friendhosting: 中国語インターフェースの追加、米国に8つのデータセンターなど - 無制限のトラフィックVPS、すべて50%オフ

中国市場を拡大するために、friendhostingは「ロシア語、ドイツ語、フランス語、英語」に続い...

Douyuがついに上場へ。5Gの商用利用はライブストリーミングにどんな新たなチャンスをもたらすのか?

1年以上の躓きを経て、斗玉の上場への道はついにゴールに近づきつつある。メディアの報道によると、斗玉は...

Kubernetes アプリケーションの問題に対する一般的なトラブルシューティングのアイデア

[[428799]]この記事はWeChatの公開アカウント「Mingge's IT Essa...

ユーザーエクスペリエンスと検索エンジンの親和性の両方を考慮したウェブサイトの設計方法

長い発展と変化の期間を経て、この基礎的なインターネット業界は、検索エンジンが人々の情報検索をますます...

WeChatで借用書を発行できるようになりました。標準テンプレート、定期的な返済リマインダー、その他の機能が提供されています。

7月28日、テンセント電子署名は「Small IOU」機能を開始しました。ユーザーは、「テンセント電...

シングルページウェブサイトの最適化テクニック:ランキング5ポイントを達成するのはもはや困難ではない

過去、Taobao が人気だった頃は、シングルページの Web サイトが最も一般的でした。SEO 最...

ライブストリーミングに関する 7 つの「恐ろしい」予測

ライブストリーミングは、過去から未来への旅の途中の立ち寄り場所です。これまではテキスト、画像、音声、...

uuuvps: US cn2 gia vps、25% 割引コード、Windows をサポート、VPS 評価データが添付

最近、米国の CN2 GIA VPS が不足しています。ここでは、米国サンノゼにある uuuvps ...

Hostyun: 独占カスタマイズ、月額9.9元、米国往復cn2 gia VPS、KVM/512Mメモリ/5gSSD/300gトラフィック

HostyunはHostCat専用のVPSをカスタマイズしており、月額料金はわずか9.9元です。通信...

Xu Junがドメイン名game.comを取得した舞台裏ストーリー!

ゲームドメイン名「game.com」を法外な価格で購入し、ドメイン名業界にセンセーションを巻き起こし...

パーフェクトダイアリーのストップロスの瞬間

パーフェクトダイアリーの計画はそれほど順調には進みませんでした。閉幕したばかりの中国国際輸入博覧会で...

Geek Host: 20% オフ、香港 VPS/シンガポール VPS/ロサンゼルス C3 データセンター VPS

Geek Host は 20% オフセールを開催しており、Host Cat の割引コードもカスタマイ...