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 つのベスト プラクティスと戦略

推薦する

SEO: トラフィック減少の原因を診断する

最近、プログラマーである友人から連絡があり、ウェブサイトのトラフィックが突然減少した理由を突き止める...

ポスト80年代世代の副社長への道:スタートアップ企業で9年間勤務

1980年代生まれの人たちは、職場ではまだ新人だといつも思っていませんか?かつては「頼りない」とレッ...

クラウドコンピューティングのコストが過剰にならないようにする6つの方法

「こんなに多くの時間とお金を無駄にしていたとは知りませんでした。」これはおそらく、最新のクラウド コ...

SEOVIPのキーワード選択を最もシンプルな考え方で見てみましょう

最も単純な考え方で、ロビンのSEOトレーニングサイトを見てみましょう。多くの友人がseovipのサイ...

ウェブマスターは検索エンジンのランキングをどのように扱うのでしょうか?

キーワード検索エンジンのランキングは常に100位以降で、1000位でも見つかりません。実際、誰もがこ...

ウェブサイトの内部ページが含まれない理由

ウェブサイトのインクルードの問題に関しては、おそらく多くの SEO 担当者はそれほど気にしていません...

外部リンクを構築するときに見落としがちな5つの重要なポイント

ウェブサイトの最適化の過程で、多くのウェブマスターが徐々にコンテンツに近づき始め、つまり、よりコンテ...

Kubernetes 上の Spark を簡単に

オープンソース版のデータメカニズムの改善Kubernetes 上の Spark の概要を知りたい場合...

エンタープライズ Web サイト マーケティングの質問: 顧客はどこから来ますか?

一般的に、企業のウェブサイトのインターネットマーケティングを行う場合、ウェブサイトの最適化は避けられ...

近年のウェブサイトランキングの急上昇の重要な理由

みなさんこんにちは。ハルビンバーチャルリアリティウェブサイトデザインです。最近、いくつかのサイトのラ...

データパケット: US VPS、月額 3.46 ドル、1G メモリ/16 コア/50g NVMe/30T トラフィック

datapacket™ ( Data Packet Networks LLC ) は、米国テキサス州...

検索エンジンがあなたのウェブサイトを好まないのはなぜでしょうか?

検索エンジンがコンテンツを効果的に閲覧できない場合、ウェブサイトにどれだけ努力を注いでも無駄になって...

モモはゴールデンインベストメントアワードでデビューし、「シュガーマーケティング」というコンセプトを打ち出した

月給5,000~50,000のこれらのプロジェクトはあなたの将来です10月15日から10月18日まで...

SEO最適化に関する質問

1. ウェブサイトの外部リンクを確認する方法ウェブサイトの外部リンクを検索する方法はたくさんあります...

なぜ SEO を行うのですか? 好きですか?

昨日はSEOとは何かについてお話ししました。今日は、なぜSEOをすべきかについて引き続きお話しします...