Dockerで最もよく使われるイメージコマンドとコンテナコマンドの詳細な説明

Dockerで最もよく使われるイメージコマンドとコンテナコマンドの詳細な説明

この記事では、Docker の使用で最もよく使用されるイメージ コマンドとコンテナ コマンドを一覧表示し、コンテナ データ ボリュームの操作方法とコンテナ データのバックアップ方法を説明します。これらのコマンドを習得したら、簡単なアプリケーションのデプロイメントを練習し、Docker イメージの構築、バックアップ、リカバリ、移行、イメージ リポジトリ、ネットワーク、クラスターなどについてさらに詳しく学ぶことができます。

ミラー関連コマンド

公式ドキュメント: https://docs.docker.com/reference/

ミラーを見る

[root@localhost ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
hello-world 最新 bf756fb1ae65 7ヶ月前 13.3kB
  • REPOSITORY : リポジトリ内のイメージの名前。この記事ではイメージ名と呼びます。
  • TAG : 画像タグ
  • IMAGE ID : 画像ID
  • CREATED : 画像が作成された日付(画像が取得された日付ではありません)
  • SIZE : 画像サイズ

これらのイメージは、Docker ホストの/var/lib/dockerディレクトリに保存されます。

検索ミラー

ネットワークから必要なイメージを見つける必要がある場合は、次のコマンドで検索できます。

docker イメージ名の検索

  • NAME : 画像名
  • DESCRIPTION : 画像の説明
  • STARS : 画像の人気度を反映するユーザー評価
  • OFFICIAL : 公式ビルドかどうか
  • AUTOMATED : 自動的にビルドされ、イメージが Docker Hub の自動ビルド プロセスによって作成されたことを示します。

画像をプルする

イメージをプルするということは、中央リポジトリからローカル コンピューターにイメージをダウンロードすることを意味します。

docker pull イメージ名

Centos イメージをローカル コンピューターにプルする場合、タグ イメージ ラベル情報を宣言しないと、デフォルトで最新バージョンがプルされます。また、https://hub.docker.com/ からイメージを検索して、サポートされているタグ情報を表示することもできます。

タグ情報を表示して、centos7 イメージをダウンロードします。

docker pull centos:7

画像の削除

ID で画像を削除します。

# 単一のイメージを削除する docker rmi イメージ ID
# 複数のイメージを削除する docker rmi イメージID イメージID イメージID

docker images -qすべてのイメージの ID を照会することができ、コマンドを組み合わせることですべてのイメージを削除できます。

docker rmi `docker イメージ -q`

注意: コンテナがイメージから作成された場合、そのイメージは削除できません。

解決策: 最初にイメージ内のコンテナを削除し、次にイメージを削除します。

コンテナ関連コマンド

コンテナを表示

実行中のコンテナを表示します。

[root@localhost ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
  • CONTAINER ID : コンテナID
  • IMAGE : 所属する画像
  • COMMAND
  • CREATED : 作成日時
  • STATUS : コンテナのステータス
  • PORTS :ポート
  • NAMES : コンテナ名

停止されたコンテナを表示します。

docker ps -f ステータス=終了

すべてのコンテナ(実行中と停止中の両方)を表示します。

ドッカーps -a

最後に実行されたコンテナを表示します。

ドッカーps -l

コンテナの作成と起動

docker run [オプション] イメージ [コマンド] [引数...]
  • -i : コンテナを実行することを意味します。
  • -t : コンテナが起動後にコマンドラインに入ることを示します。これら 2 つのパラメータを追加すると、コンテナの作成後にコンテナにログインできるようになります。つまり、疑似端末を割り当てます。
  • --name : 作成されたコンテナに名前を付けます。
  • -v : ディレクトリ マッピング関係を示します (前者はホスト ディレクトリ、後者はホストにマッピングされたディレクトリです)。複数の -v を使用して、複数のディレクトリまたはファイルをマッピングできます。注: ディレクトリ マッピングを実行し、ホスト マシンで変更を加えてから、それをコンテナーに共有するのが最適です。
  • -d : 実行後に -d パラメータを追加すると、保護されたコンテナが作成され、バックグラウンドで実行されます (コンテナの作成後にコンテナに自動的にログインすることはありません。 -i -t パラメータのみを追加すると、コンテナの作成後にコンテナに自動的にログインします)。
  • -p : ポートマッピングを示します。前者はホストポート、後者はコンテナ内のマッピングポートです。複数の -p オプションを使用して複数のポートをマップできます。
  • -P : ホスト上の利用可能なポートをランダムに使用して、コンテナで公開されているポートにマッピングします。

コンテナを作成して入力する

次のコマンドラインは、イメージ AA を通じてコン​​テナ BB を作成し、コンテナを実行してコンテナの/bin/bashに入ることを意味します。

docker run -it --name コンテナ名 イメージ名: tag /bin/bash

注: Docker コンテナを実行するにはフォアグラウンド プロセスが必要です。フォアグラウンド プロセスが実行されていない場合、コンテナはアイドル状態であると見なされ、自動的に終了します。

現在のコンテナを終了する

出口

保護された方法でコンテナを作成する

docker run -di --name コンテナ名 イメージ名: タグ

ログインガードコンテナモード

docker exec -it コンテナ名 | コンテナID /bin/bash

コンテナの停止と起動

# コンテナを停止します docker stop コンテナ名 | コンテナID
# コンテナを起動します docker start コンテナ名 | コンテナID

ファイルのコピー

コンテナにファイルをコピーする必要がある場合は、cp コマンドを使用できます。

docker cp コピーするファイルまたはディレクトリ コンテナ名: コンテナディレクトリ

コンテナからファイルをコピーすることも可能です。

docker cp コンテナ名: コンテナディレクトリにコピーするファイルまたはディレクトリ

ディレクトリマウント(コンテナデータボリューム操作)

コンテナを作成するときに、ホスト ディレクトリをコンテナ内のディレクトリにマップして、ホストのディレクトリ内のファイルを変更することでコンテナに影響を与えることができます。この操作は双方向にバインドされているため、コンテナ内の操作はホストにも影響を与え、バックアップ機能を実現します。

ただし、コンテナが削除されても、基礎となるレイヤーはコピーによって実装されているため、ホスト マシンの内容は削除されません。複数のコンテナが同じディレクトリをマウントし、そのうちの 1 つのコンテナを削除しても、他のコンテナの内容は影響を受けません。同様に、下位層はコピーによって実装されます。

ただし、コンテナを削除しても、ホストの内容は削除されません。複数のコンテナが同じディレクトリをマウントし、そのうちの 1 つのコンテナを削除しても、他のコンテナの内容は影響を受けません。

コンテナとホスト間のデータボリュームは参照関係にあります。データボリュームは外部からコンテナにマウントされるため、コンテナのライフサイクルとは独立して存在できます。データボリュームのライフサイクルがコンテナのライフサイクルと同じではないからこそ、コンテナが終了したり削除されたりしてもデータボリュームは影響を受けません。データボリュームのライフサイクルは、どのコンテナも使用しなくなるまで継続します。

コンテナを作成するときは、宿主機目錄:容器目錄の形式で-vパラメータを追加します。次に例を示します。

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 複数のディレクトリをマウント docker run -di -v /host ディレクトリ:/container ディレクトリ -v /host ディレクトリ 2:/container ディレクトリ 2 イメージ名

ディレクトリのマウント操作で、権限が不十分であるというメッセージが表示される場合があります。これは、CentOS7 のセキュリティ モジュール SELinux が権限を無効にしているためです。docker を実行するときに、 --privileged=trueを使用してコンテナーに権限を追加し、マウントされたディレクトリに権限がない問題を解決します。

匿名マウント

匿名マウントではコンテナ ディレクトリへの書き込みのみが必要で、コンテナ外の対応するディレクトリは/var/lib/docker/volumeに生成されます。

# 匿名マウント docker run -di -v /usr/local/data --name centos7-02 centos:7
# ボリュームデータボリューム情報を表示する docker volume ls 

名前付きマウント

名前付きマウントはデータボリュームに名前を付けるもので、コンテナ外の対応するディレクトリが/var/lib/docker/volumeに生成されます。

# 匿名マウント docker run -di -v docker_centos_data:/usr/local/data --name centos7-03 centos:7
# ボリュームデータボリューム情報を表示する docker volume ls

マウントするディレクトリを指定

最初に説明した方法は、指定されたディレクトリをマウントすることです。このマウント方法では/var/lib/docker/volumeディレクトリにコンテンツは生成されません。

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 複数のディレクトリをマウント docker run -di -v /host ディレクトリ:/container ディレクトリ -v /host ディレクトリ 2:/container ディレクトリ 2 イメージ名

ディレクトリのマウント関係を表示する

docker volume inspect 數據卷名稱と、データ ボリュームに対応するホスト マシンのディレクトリ アドレスを表示できます。

[root@localhost ~]# dockerボリューム検査docker_centos_data
[
 {
 「作成日時」: 「2020-08-13T20:19:51+08:00」、
 "ドライバー": "ローカル",
 「ラベル」: null、
 「マウントポイント」: 「/var/lib/docker/volumes/docker_centos_data/_data」、
 「名前」: 「docker_centos_data」、
 「オプション」: null、
 「スコープ」: 「ローカル」
 }
]

docker inspect 容器ID或名稱、返された JSON ノードでMounts見つけることで、詳細なデータ マウント情報を表示できます。

読み取り専用/読み取り書き込み

# 読み取り専用。コンテナのデータ管理は、ホスト コンテンツを変更することによってのみ実現できます。
docker run -it -v /host directory:/container directory:ro イメージ名# 読み取り/書き込み、デフォルト。ホストとコンテナは双方向にデータを操作できます。
docker run -it -v /ホストディレクトリ:/コンテナディレクトリ:rw イメージ名

ボリューム-from (継承)

# コンテナ centos7-01 はマウントするディレクトリを指定します docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# コンテナ centos7-04 と centos7-05 は、centos7-01 コンテナのマウント ディレクトリを継承するのと同じです。docker run -di --volumes-from centos7-01 --name centos7-04 centos:7
docker run -di --volumes-from centos7-01 --name centos7-05 centos:7

コンテナのIPアドレスを表示する

次のコマンドでコンテナのメタ情報を表示できます。

docker コンテナ名を検査 | コンテナ ID

次のコマンドを直接実行して、IP アドレスを直接出力することもできます。

docker examine --format='{{.NetworkSettings.IPAddress}}' コンテナ名 | コンテナ ID

コンテナの削除

# 指定されたコンテナを削除します docker rm コンテナ名 | コンテナID
# 複数のコンテナを削除する docker rm コンテナ名 | コンテナ ID コンテナ名 | コンテナ ID

Docker run コマンドの詳しい使い方は以前ご紹介しました。興味のある方は参考にしてください!

以上で、最もよく使われる Docker イメージ コマンドとコンテナ コマンドについての説明は終了です。より関連性の高い Docker イメージ コマンドとコンテナ コマンドについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerコンテナオーケストレーション実装プロセス分析
  • Docker データボリュームコンテナの作成と使用状況分析
  • Dockerコンテナのデータボリュームの詳細な説明
  • Spring Boot プロジェクトで Docker イメージを生成し、コンテナのデプロイを完了する方法
  • Dockerコンテナ内にkibanaトークナイザーをインストールする方法
  • Dockerコンテナの構築と実行のプロセスの詳細な説明
  • Docker コンテナ アプリケーションで避けるべき 10 の悪い習慣
  • Dockerコンテナのネットワークポート設定プロセスの詳細な説明

<<:  MySQL データベースにおける高同時実行性の問題を解決する方法

>>:  Vueはechartを使用してラベルと色をカスタマイズします

推薦する

MySQLのテーブル構造を変更する際に知っておきたいメタデータロックの詳しい解説

序文MySQL を扱ったことがある人なら、テーブル メタデータ ロックの待機についてよく知っているは...

Vue での ref の使用法とデモンストレーション

ref 定義:要素またはサブコンポーネントの参照情報を登録するために使用されます。参照情報は、親コン...

Facebook 出会い系サイトデザインのユーザー エクスペリエンス分析

<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...

Linux SecureCRT の文字化けの解決方法

SecureCRT が文字化けした文字を表示する状況を見てみましょう。例えば: ではリセットしてみま...

Linuxがすべてのコマンドをサポートしていない問題の解決策

Linux がすべてのコマンドをサポートしていない場合はどうすればいいですか?すべてのLinuxコマ...

W3C組織はHTML4のスタイルに関する推奨事項を提供しています

これは、W3C 組織が HTML4 に対して提示したスタイル推奨事項です。残念ながら、ブラウザが独自...

IE6 および IE7 で DIV コンテナの固定高さを使用するためのヒント

IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...

jsはポップアップウィンドウをクリックすることでポップアップログインボックスを実装します

この記事では、ポップアップウィンドウをクリックしたときにポップアップログインボックスを実現するための...

CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法

1. インストールバージョンの詳細 サーバー: MariaDB サーバーバージョン: 5.5.60-...

WeChatミニプログラムマップの使い方を詳しく解説

この記事の例では、WeChatアプレットマップで使用される具体的な実装コードを参考までに共有していま...

HTML テーブルタグチュートリアル (17): テーブルタイトルの垂直配置属性 VALIGN

表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...

vue3で注意すべき2つのポイントを詳しく解説:セットアップ

目次vue2の場合vue3ではセットアップに関する注意事項セットアップライフサイクルは、before...

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

導入定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監...

VueのVuexの4つの補助機能について

目次1. 補助機能2. 例1. mapState と mapGetters 2. mapMutati...