Dockerイメージ(イメージ)とコンテナー(コンテナー)

Dockerイメージ(イメージ)とは何ですか?

  • 鏡像は複数の層で構成されており、各層を重ね合わせると、外側からは独立した物体のように見えます。
  • イメージの内部には、合理化されたオペレーティングシステム(OS)があり、アプリケーションの実行に必要なファイルと依存関係も含まれています。
  • イメージは1つ以上のコンテナーを実行でき、イメージはコンテナーの操作を停止して、コンテナーから新しいイメージを作成することもできます。

【鏡像の分類(画像)】


[ミラー(イメージ)共通コマンド]

  • docker image pull = "イメージのダウンロード(デフォルトでは、リモートのパブリックイメージウェアハウスサービスDocker Hubからダウンロード)。
  • docker image pull alpine:latest = "DockerHubのaplineウェアハウスから[ラベル/バージョン]を最新のイメージとしてプルします。
  • docker image pull nginx:latest = "DockerHubのnginxウェアハウスから[ラベル/バージョン]を最新のイメージとしてプルします。
  • docker image pull -a nginx / xxx = "ウェアハウス内のすべてのイメージをプルします。パラメーター-aはすべてすべてです。
  • docker image ls-aまたはdockerimages -a = "ローカルDockerホスト(図には示されていません)に保存されているイメージを一覧表示します。パラメーター-aはすべてすべてです。
  • docker image history nginx = "nginxミラーのインストール情報を表示します。
  • docker image inspect ubuntu:latest = "ubuntu画像レイヤー情報を表示し、画像のすべての詳細(画像レイヤーデータとメタデータを含む)を表示します。
  • docker image rm ubuntu:latest = "ubuntu:latestイメージを削除します。
  • docker image build = "まったく新しいイメージを作成します。

[イメージ管理(コマンド)コマンド構成パラメーターの表示]

  • docker image [特定のコマンド名]-help = "管理コマンドの構成パラメーターに対応するイメージを表示します

【パラメータフィルター-フィルター】

  • docker image ls --filter dangling = true =》ダングリングに戻るダングリング/ラベルのないミラーはダングリングミラーと呼ばれ、リストに<none>:<none>として表示されます)mirror;

  • docker image prune =》中断されているすべての仮想イメージを削除します。-aパラメーターを追加すると、Dockerは未使用のイメージ(どのコンテナーでも使用されていないイメージ)を追加で削除します。

Dockerは現在、次のフィルターをサポートしています。
    ダングリング:trueまたはfalseを指定でき、ダングリング仮想イメージ(true)または非ダングリング仮想イメージ(false)のみを返します。
    before:パラメータとして画像名またはIDが必要で、以前に作成されたすべての画像を返します。
    since:前と同様ですが、指定されたミラーの後に作成されたすべてのミラーを返します。
    label:ラベルの名前または値に基づいて画像をフィルタリングします。

    docker image ls --filter = reference = "*:latest" =》参照はフィルタリングを完了し、ラベルが最新の例のみを表示します;
    docker image ls --format "{ {.Size}}" =》パラメーター- format through Goテンプレートは出力コンテンツをフォーマットし、Dockerホスト上の
    画像のサイズ属性のみを返します。dockerimagels --format "{ {.Repository}}:{ {。Tag}}:{ {。Size}} "="すべてのミラーを返しますが、ウェアハウス、ラベル、サイズの情報のみを表示します。

[CLI検索DockerHub] = "公式[公式]または非公式[自動]ミラーに戻る

  • docker search nginx = "シンプルモード、" NAME = nginx "フィールドに特定の文字列を含むすべてのウェアハウスを検索します。
  • docker search nginx --filters "is-official = true" = "nginxのコンテンツを返し、公式画像のみを表示します。
  • docker search nginx --filters "is-automated = true" = "nginxのコンテンツを返し、非公式の画像のみを表示します。

注:[docker search]デフォルトでは、Dockerは25行の結果しか返しません。パラメーター--limitによって返される行数を最大100行まで増やすことができます。

例:docker search nginx --limit 60

【Dockerファイル操作】

  • vi / vim index.html = "index.htmlファイル情報を編集します。vimをインストールする必要がある場合があります。Linuxのデフォルトはviです。
  • docker cp index.html 41c15dlacff0:// usr / share / nginx / html =》 index.htmlファイルをdockerコンテナーにコピーし、その後にコンテナーID:ストレージパスを続けます。
  • docker rm nginx =》イメージファイルを削除します。イメージファイルの後にイメージ名またはイメージIDを続けることができます。
  • docker rm -f xxx =》パラメータ-fはプロンプトなしで強制的に削除されます。
  • docker rm -rf xxx =》フォルダとそのサブフォルダ内のすべてのファイルを削除します。パラメータ-rは再帰的に下向きに削除します。
  • docker mv = "移動または名前変更;
  • docker mv Dockerfile ../chait/ =》 Dockerfileを../chait/に移動します。
  • docker mv Dockerfile docfile = "名前をdocfileに変更;
  • docker commit -m'xxx '41c15dlacff0 newimagename = "ファイル、パラメーター-mファイル名、続いて元のイメージID、新しいイメージ名を送信します。

【Linuxファイル操作】

  • ls =》このパスの下にあるすべてのファイルを表示します。
  • mkdir xxx =》新しいフォルダを追加します。
  • vi / vim xxx = "ファイルを編集します;
  • rm -f xxx =》ファイルを削除します。パラメータ-fは強制的に削除されます。
  • rm -rf xxx = "ディレクトリとすべてのサブディレクトリおよびファイルを削除します。パラメータ-rは再帰的に下向きになり、-fは強制的に削除します。
  • cat xxx =》ファイルの内容を表示します。
  • :wq =》編集したコンテンツを終了して保存します。
  • sudo apt install lrzsz = "installlrzszファイルアップロードツール;
  • rz = "lrzszに基づくファイルのアップロード;

【ポート番号を見る】

  • su root = "rootユーザーを切り替えます;
  • lsof -i:port = "出力ポート情報;
  • netstat -aptn = "開いているすべてのポート番号を表示します。
  • netstat -nupl = "udpプロトコルを使用してすべてのポート番号を表示します。
  • netstat -ntpl = "tcpプロトコルを使用してすべてのポート番号を表示します。

[Linux再起動コマンド]
    1。再起動 
    2.shutdown-rがすぐに再起動し
    ます
    3.shutdown -r 1010分後に自動的に再起動します4.shutdown -r 20:3520:35に再起動します

    shutdownコマンドを使用して再起動が設定されている場合は、shutdown-cコマンドを使用して再起動をキャンセルできます。

[Linuxシャットダウンコマンド]
    1。停止はすぐにシャットダウンします(通常は-pを追加して電源をシャットダウンします)
    2。電源オフはすぐにシャットダウンし 
    ます3.シャットダウン-hはすぐにシャットダウンします
    4.シャットダウン-h10は10分後に自動的にシャットダウンします 

    shutdownコマンドでshutdownが設定されている場合は、shutdown-cコマンドを使用してシャットダウンをキャンセルできます。

【クイッククリーンアップ(暴力)】

  • rm $(docker image ls -a)-f = "Dockerホスト上のすべてのイメージイメージを削除します。パラメーター-fは強制的に削除されます
  • docker container rm $(docker container ls -aq)=》 dockerホスト上のすべてのコンテナーを削除します(コンテナーIDを削除します)

エレガントな方法:停止してからrm =》最初に一時停止し、削除します。

【ドーカーサービス再開】

  • systemctl start docker = "Dockerサービスを開始します。
  • sudo systemctldaemon-reload = "デーモンデーモンを再起動します。
  • systemctl restart docker = "dockerサービスを再起動します。
  • sudo service docker restart = "dockerサービスを再起動します。
  • service docker stop = "dockerサービスを閉じます。
  • systemctl stop docker = "dockerサービスをシャットダウンします。

【ミラーコマンドセット】

  • docker image --help =》画像のすべての管理コマンドを表示する


Dockerコンテナ(コンテナ)とは何ですか?

  • コンテナはイメージの実行中のインスタンスであり、1つのイメージで複数のコンテナを作成できます。
  • コンテナと仮想マシンの違い:コンテナは起動が速く、軽量です。完全なオペレーティングシステムで実行されている仮想マシンと比較して、コンテナは、それが配置されているホストのオペレーティングシステム/カーネルを共有します。

【ミラーリングとコンテナの違い】

  • 状態は異なり、イメージはビルド時の構造であり、コンテナーはランタイム構造です。
  • イメージは読み取り専用であり、書き込みはできません。また、コンテナーは読み取りと書き込みが可能です。

【ミラーとコンテナの関係】

  • 1つのイメージで複数のコンテナーを構築できます。1:nの1対多の関係。
  • コンテナの本来の目的は高速で小さいことであるため、通常、画像は比較的小さくなります。コマンド[dockercontainerrun]および[dockerservice create] = "は、特定のイメージから1つ以上のコンテナーを開始します。コンテナがミラーから開始されると、2つの関係は相互に依存するようになり、ミラーで開始されたすべてのコンテナが停止するまでミラーを削除できません。イメージを使用するコンテナーを停止または破棄せずにイメージを削除しようとすると、エラーが発生します。

鏡像は通常小さいです

コンテナの目的は、アプリケーションまたはサービスを実行することです。つまり、コンテナのイメージには、アプリケーション/サービスの実行に必要なオペレーティングシステムとアプリケーションファイルが含まれている必要があります。

ただし、コンテナはスピードとコンパクトさを追求しているため、画像を作成する際には、通常、不要な部分を切り取り、ボリュームを小さくする必要があります。

たとえば、Dockerイメージには通常、読者が選択できる6つの異なるシェルが含まれていません。通常、Dockerイメージには合理化されたシェルしかないか、シェルがありません。

 

イメージにはまだカーネルが含まれていません。コンテナーは共有Dockerホストのカーネルです。そのため、コンテナには必要なオペレーティングシステム(通常はオペレーティングシステムファイルとファイルシステムオブジェクトのみ)のみが含まれていると言われることがあります。ヒント:Hyper-Vコンテナーは、VM内のオペレーティングシステムカーネルを使用しながら、専用の軽量VMで実行されます。

 

公式のDockerイメージであるAlpineLinuxはわずか約4MBであり、Dockerイメージのコンパクトさの典型的な例と言えます。

ただし、イメージのより一般的な状態は、公式のUbuntuDockerイメージのようなものです。これは約110MBです。これらの鏡像では、役に立たないコンテンツのほとんどが切り取られています。

Windowsイメージは、WindowsOSの動作原理に関連するLinuxイメージよりも大きくなっています。たとえば、圧縮されていない最新のMicrosoft .NETイメージ(microsoft / dotnet:latest)は1.7GBを超えています。

Windows Server 2016 Nano Serverイメージ(microsoft / nanoserver:latest)をプルおよび解凍した後、そのボリュームは1GBよりわずかに大きくなります。

 

[コンテナ(コンテナ)の一般的に使用されるコマンド]

  • docker container run <image> <app> = "起動に必要なイメージと実行するアプリケーションを指定します。
  • docker container run -it ubuntu / bin / bash = "ubuntuコンテナーを起動し、アプリケーションとしてBashShellを実行します。
  • docker container run -it microsoft- / powershell:nanoserver pwsh.exe = "nanoserverコンテナーを起動し、PowerShellをそのアプリケーションとして実行します。
  • docker container run -it ubuntu / bin / bash = "コマンドは、フォアグラウンドでUbuntuコンテナーを起動し、Bashシェルを実行します。

[Ctrl + PQ]は、シェルとコンテナターミナル間のリンクを解除し、終了後もコンテナをバックグラウンドで実行(UP)し続けます。

パラメータ-itは、現在の端末をコンテナのシェル端末に接続できます。コンテナーは、実行中のアプリケーションの出口で終了します。Linuxコンテナーは、Bashシェルが終了した後に終了し、Windowsコンテナーは、PowerShellプロセスが終了した後に終了します。検証方法は、新しいコンテナを起動し、sleepコマンドを実行して10秒間スリープすることです。コンテナが起動し、sleepコマンドを実行し、10秒後に終了します=》 docker container run alpine:latest sleep 10

  • docker container ls = "実行中(UP)状態のすべてのコンテナーを一覧表示します。-aフラグを使用すると、コンテナが終了状態になっていることも確認できます。
  • docker container exec -it <container-nameまたはcontainer-id> bash = "コマンドは、コンテナー内でBash Shellプロセスを開始し、シェルに接続します(コンテナーの作成に使用されるイメージには、Bashシェルが含まれている必要があります。ホストシェル実行中のコンテナ端末に接続するときに非常に便利です);
  • docker container stop <container-nameまたはcontainer-id> = "実行中のコンテナーを停止し、ステータスをExited(10s stop);に設定します。
  • docker container start <container-nameまたはcontainer-id> = "終了状態でコンテナを再起動します。
  • docker container stop <container-nameまたはcontainer-id> = "停止したコンテナーを削除します。
  • docker container inspect <container-nameまたはcontainer-id> = "コンテナの階層構成の詳細と実行時情報を表示します。 

【コンテナコマンドセット】

  • docker container --help =》コンテナのすべての管理コマンドを表示する

[Dockerデーモン(デーモン)を確認してください]

サーバー部分にエラーコードが含まれている場合は、Dockerデーモンが実行されていないか、現在のユーザーにアクセスする権限がないことを意味します。

[Linuxでの不正アクセスの問題を解決する]

  1. 現在のユーザーがローカルのDockerUNIXグループに属しているかどうかを確認します。属していない場合は、[usermod -aG docker <user>]を使用して追加し、ログアウトしてシェルに再度ログインすると、変更が有効になります。
  2. ユーザーはdockerユーザーグループに属しています。これは、Dockerデーモンが実行されていないことが原因である可能性があります。Dockerホストのオペレーティングシステムに応じて、次の対応するコマンドを選択してデーモンのステータスを確認します。
//使用 Systemd 在 Linux 系统中执行该命令
$ service docker status
docker start/running, process 29393

//使用 Systemd 在Linux 系统中执行该命令
$ systemctl is-active docker
active

//在Windows Server 2016的 PowerShell 窗口中运行该命令
> Get-Service docker

Status Name DisplayName
------ ---- -----------
Running Docker docker

【Docker 命令集】

  • docker --help = "dockerですべての管理コマンドを表示します。
  • docker --info = "Docker情報を表示します。

  •  管理コマンド管理コマンド:

おすすめ

転載: blog.csdn.net/ChaITSimpleLove/article/details/105211146