Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)

Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)

序文

Docker イメージは Dockerfile といくつかの必要な依存関係で構成され、Docker コンテナは動的な Docker イメージです。 Docker コマンドを使用するには、まず、イメージを扱っているのか、コンテナを扱っているのかを知る必要があります。イメージを扱っているのか、コンテナを扱っているのかがわかれば、正しいコマンドを見つけることができます。

コマンドの共通性

Docker コマンドについて知っておくべきルールがいくつかあります。

  • Docker CLI 管理コマンドは、docker で始まり、その後にスペース、管理カテゴリ、スペース、コマンドの順に続きます。たとえば、コマンド docker container stop はコンテナを停止します。
  • 特定のコンテナまたはイメージを参照するコマンドには、そのコンテナまたはイメージの名前または ID が必要です。

たとえば、docker container run my_app は、my_app という名前のコンテナをビルドして実行するコマンドです。この記事では、汎用コンテナを指すために my_container という名前を使用します。同様に、my_image と my_tag についても同様です。

コマンドと共通フラグを別途提供します。前に 2 つのダッシュが付いている標識は、標識の完全な名前です。ダッシュが 1 つ付いた旗は、旗の完全な名前の略称です。たとえば、-p は --port フラグの短縮形です。

この記事の目的は、これらのコマンドとフラグをしっかりと理解していただき、コンテナを作成したりイメージを構築したりするときにこのガイドを参考にしていただければ幸いです。このガイドは、Linux および Docker Engine バージョン 18.09.1 および API バージョン 1.39 を対象としています。

まずコンテナ コマンドを理解し、次にイメージ コマンドを見てみましょう。

コンテナコマンド

dockerコンテナmy_commandを使用する

  • create — イメージからコンテナを作成する
  • start — 既存のコンテナを起動する
  • run — 新しいコンテナを作成して起動します
  • ls — 実行中のコンテナを一覧表示する
  • 検査 — コンテナに関する情報を表示する
  • ログ — ログを印刷する
  • stop — 実行中のコンテナを正常に停止する
  • kill — コンテナ内のメインプロセスを直ちに停止します
  • rm — 停止したコンテナを削除する

ミラーコマンド

dockerイメージmy_commandを使用する

  • ビルド — イメージを構築する
  • push — イメージをリモートイメージリポジトリにプッシュする
  • ls — 画像を一覧表示する
  • 履歴 — 中間画像情報を表示
  • 検査 — レイヤーを含む画像に関する情報を表示します
  • rm — 画像を削除する

コンテナとイメージ

  • docker version — Dockerクライアントとサーバーのバージョンに関する情報を一覧表示します
  • docker login — Docker イメージリポジトリにログインする
  • docker system prune — 未使用のコンテナ、ネットワーク、名前のないイメージ(ダングリングイメージ)をすべて削除します。

コンテナコマンドの説明

コンテナを起動する

「作成」、「開始」、「実行」という用語は日常生活ではすべて同様の意味を持ちますが、それぞれがコンテナの作成や開始に使用される個別の Docker コマンドです。まずコンテナを作成するコマンドを見てみましょう。

docker container create my_repo/my_image:my_tag — イメージからコンテナを作成する

以下のテキストでは、my_repo/my_image:my_tag を my_image と呼びます。

作成するフラグをいくつか渡すことができます。

docker コンテナ作成 -a STDIN my_image

-a は --attach の略で、コンテナを STDIN、STDOUT、または STDERR に接続することを意味します。

コンテナを作成したので、起動してみましょう。

docker container start my_container — 既存のコンテナを起動する

コンテナは、コンテナの ID またはコンテナの名前のいずれかで参照できることに注意してください。

docker コンテナを起動 my_container

コンテナを作成して起動する方法がわかったので、最も一般的な Docker コマンドを見てみましょう。これは、create と start を 1 つのコマンド run に結合します。

docker container run my_image — 新しいコンテナを作成して起動します。このコマンドにも多くのオプションがあります。いくつか見てみましょう。

docker コンテナを実行 -i -t -p 1000:8000 --rm my_image

-i は --interactive の短縮形で、接続されていない場合でも STDIN を開いたままにします。 -t は --tty の短縮形で、擬似端末を割り当て、その端末をコンテナの STDIN および STDOUT に接続します。

ターミナル シェルを介してコンテナーと対話するには、-i と -t を指定する必要があります。

-p は --port の省略形です。ポートは外部へのインターフェースです。 1000:8000 は、Docker ポート 8000 をコンピューターのポート 1000 にマッピングします。ブラウザに何かを出力するアプリがある場合は、ブラウザで localhost:1000 に移動して確認できます。

--rm は停止したコンテナを自動的に削除します。

run の例をもう少し見てみましょう。

docker コンテナ実行 -it my_image my_command

sh は実行時に指定できるコマンドで、コンテナ内でシェル セッションを開始し、ターミナルを通じて対話できるようになります。 Alpine イメージの場合、bash よりも sh が優先されます。これは、Alpine イメージには bash がインストールされていないためです。対話型シェル セッションを終了するには、exit と入力します。

-i と -t を -it に結合したことに注意してください。

docker コンテナ実行 -d my_image

-d は --detach の略で、コンテナをバックグラウンドで実行することを意味します。これにより、コンテナの実行中にターミナルを使用して他のコマンドを実行できるようになります。

コンテナの状態を確認する

多数の Docker コンテナが実行されていて、どのコンテナとやり取りするかを知りたい場合は、それらをリストする必要があります。

docker container ls — 実行中のコンテナを一覧表示し、それらに関する有用な情報を提供します。

dockerコンテナls -a -s

-a は --all の省略形で、実行中のコンテナだけでなくすべてのコンテナを一覧表示します。

-s は --size の短縮形で、各コンテナのサイズを一覧表示します。

docker container examine my_container — コンテナに関する情報を表示する

docker container logs my_container — コンテナログを一覧表示する

コンテナの終了

実行中のコンテナを停止する必要がある場合があります。次のコマンドを使用できます。

docker container stop my_container — 実行中の 1 つ以上のコンテナを正常に停止します。これにより、コンテナがシャットダウンされる前にプロセスが完了するまでの時間がデフォルトで 10 秒に設定されます。

10 秒は長すぎると思われる場合は、次のコマンドを使用できます。

docker container kill my_container — 実行中の 1 つ以上のコンテナを直ちに停止します。それはテレビのプラグを抜くようなものです。ただし、ほとんどの場合、stop コマンドを使用することをお勧めします。

docker container kill $(docker ps -q) — 実行中のコンテナをすべて終了します

コンテナを削除する必要がある場合は、次のコマンドを使用できます。

docker container rm my_container — 1 つ以上のコンテナを削除します

docker container rm $(docker ps -a -q) — 実行されていないコンテナをすべて削除します。

上記は Docker コンテナの主要コマンドです。次に、ミラーリングコマンドを見てみましょう。

ミラーコマンドの詳細な説明

Docker イメージで使用される 7 つのコマンドは次のとおりです。

イメージを構築する

docker image build -t my_repo/my_image:my_tag 。指定されたパスまたは URL の Dockerfile に my_image という名前の Docker イメージをビルドします。

-t は tag の略で、指定されたタグ (この場合は my_tag) でイメージにタグを付ける様に Docker に指示します。

コマンドの末尾のピリオド (.) は、現在の作業ディレクトリ内の Dockerfile に基づいてイメージをビルドするように Docker に指示します。

イメージをビルドしたら、必要に応じて共有したりプルしたりできるように、リモート リポジトリにプッシュします。ミラーコマンドではありませんが、次のコマンドは非常に便利です。

docker login — Dockerイメージリポジトリにログインし、プロンプトが表示されたらユーザー名とパスワードを入力します。

docker image push my_repo/my_image:my_tag — イメージをリポジトリにプッシュします。

これらの画像を入手したら、ぜひ確認してみてください。

画像を確認する

docker image ls — イメージと各イメージのサイズを一覧表示します

docker image history my_image — イメージの中間イメージを、そのサイズや作成方法を含めて表示します。

docker image examine my_image — イメージを構成するレイヤーを含むイメージの詳細を表示します。

場合によっては、画像をクリーンアップする必要もあります。

画像をクリーンアップする

docker image rm my_image — 指定されたイメージを削除します。イメージがイメージ リポジトリに保存されている場合は、引き続きそこで利用できます。

docker image rm $(docker images -a -q) — すべてのイメージを削除します。このコマンドは注意して使用する必要があります。リモート リポジトリにプッシュされたイメージは引き続き保存できるため、イメージ リポジトリの利点となります。

これらは Docker イメージに関連する重要なコマンドのほとんどです。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。

以下もご興味があるかもしれません:
  • Dockerコンテナイメージ関連コマンドの基本的な紹介と使用方法
  • 開発者にとって必須の Docker コマンドの概要
  • よく使われる Docker コマンドと例の概要と分析
  • 一般的なDockerコマンドの詳細な説明
  • 一般的なDockerコマンドの概要
  • 一般的な docker コマンドの概要 (推奨)
  • Dockerコマンドの学習を1つの記事にまとめる
  • 一般的な Docker コマンドの紹介

<<:  JavaScript キャンバスでカラフルな太陽のハロー効果を実現

>>:  MySQL 5.7.18 インストーラーのインストール ダウンロード グラフィック チュートリアル

推薦する

CSS ボックスモデル内のパディングと略語の詳細な説明

上図のように、パディング値は時計回り(右上、右下)の複合属性であり、パディングの内側の余白がボックス...

Vue のディスパッチとブロードキャストの自己実装の詳細説明 (ディスパッチとブロードキャスト)

解決すべき問題主にコンポーネント間のクロスレベル通信用なぜディスパッチとブロードキャストを自分で実装...

CSS における px、rem、em、vh、vw の違いを簡単に分析します

絶対長さピクセルpx はピクセル値であり、メートルやセンチメートルのような固定の長さです。相対的な長...

シェルスクリプトは、Docker の半自動コンパイル、パッケージ化、およびリリースアプリケーション操作を構築します。

Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...

Linuxはlsof/extundeleteツールを使用して、誤って削除されたファイルやディレクトリを復元します。

序文Linux には Windows のような目立つごみ箱がないため、簡単に復元することはできません...

セマンティック HTML タグの紹介

ここ数年、ウェブサイト開発では DIV+CSS が非常に人気があり、当時は大きな騒動を引き起こしまし...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

Vueプロジェクトの最適化とパッケージ化の詳細な説明

目次序文1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか? 2. ル...

LeetCode の SQL 実装 (182. 重複するメールボックス)

[LeetCode] 182.重複メールPerson という名前のテーブル内のすべての重複メールを...

react-navigation6.xルーティングライブラリの基本的な使い方の詳しい説明

目次react-nativeプロジェクトの初期化react-nativeプロジェクトをインストールす...

Hadoopカウンターとデータクリーニングの適用

データクリーニング (ETL)コアビジネスの MapReduce プログラムを実行する前に、まずデー...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗し...

ウェブサイトのコンテンツが検索エンジンに含まれないようにする方法

通常、Web サイトを構築する目的は、検索エンジンにインデックス登録してもらい、プロモーションを拡大...