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がbinlogファイルを手動で登録し、マスタースレーブ異常を引き起こす理由

1. 問題の原因友人の @水米田 から、POSITION に基づくマスタースレーブについて質問があり...

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

トランジションコンポーネントのアニメーション効果を使用した Vue サンプルコード

トランジションドキュメントアドレスは、フェードインとフェードアウト効果を実現するための背景ポップアッ...

マークアップ言語 - リスト再び

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Docker プライベート ウェアハウスを構築する (自己署名方式)

作成したイメージを一元管理し、サービスの展開を容易にするために、プライベート Docker リポジト...

JavaScript の基本オブジェクト

目次1. オブジェクト1.1 オブジェクトとは何ですか? 1.2 なぜオブジェクトが必要なのか? 2...

よく使われる Docker コマンドと例の概要と分析

目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...

CN2、GIA、CIA、BGP、IPLC はどういう意味ですか?

CN2ラインとは何ですか? CN2 は、China Telecom Next Carrier Ne...

Nginx を使用して rtmp ライブ サーバーを実行する方法

今回は、コンピューターや携帯電話用の rtmp ライブ ブロードキャスト サーバーを設定し、ライブ ...

一般的でない js 演算演算子の概要

目次2. カンマ演算子3. JavaScript Null 結合演算子 (??) 4. JavaSc...

mysql 実行プラン ID が空である (UNION キーワード) の詳細な説明

導入作業プロセス中に、遅いクエリが調整されることがあります。 MySQL SQL ステートメントのチ...

包括的なウェブサイト評価ソリューション

<br />「XXXのウェブサイトを見てみませんか?」といった質問をされることもあります...

シンプルなカレンダー効果を実現する js

この記事では、シンプルなカレンダー効果を実現するためのjsの具体的なコードを参考までに共有します。具...

MySQL の削除に基づく構文エイリアスの問題

目次MySQL 削除構文エイリアスの問題mysql の delete ステートメントでエイリアスを使...

JS で単一ファイルコンポーネントを実装する方法

目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...