DockerとDockerの使用
Dockerアーキテクチャ
- Dockerデーモン(Dockerデーモン):Dockerデーモンは、ホスト(DOCKER-HOST)で実行されるバックグラウンドプロセスです。Dockerクライアントを介して通信できます。
- クライアント(Dockerクライアント):DockerクライアントはDockerのユーザーインターフェイスであり、ユーザーコマンドと構成IDを受け入れ、Dockerデーモンと通信できます。この図では、dockerbuildなどはすべてDockerの関連コマンドです。
- イメージ(Dockerイメージ):Dockerイメージは、Dockerコンテナーを作成するための手順を含む読み取り専用のテンプレートです。これは、システムインストールCDに少し似ています。システムは、システムインストールCDを使用してインストールできます。同様に、Dockerイメージを使用して、Dockerイメージ内のプログラムを実行できます。
- コンテナ:コンテナは、イメージの実行可能なインスタンスです。イメージとコンテナの関係は、オブジェクト指向のクラスとオブジェクトの関係に少し似ています。Docker APIまたはCLIコマンドを使用して、コンテナーを開始、停止、移動、および削除できます。
- レジストリ:Dockerレジストリは、イメージを一元的に保存および配布するサービスです。Dockerイメージがビルドされたら、現在のホストで実行できます。Docker Hubには多数の優れたイメージが保存されているため、Dockerコマンドを使用してダウンロードして使用できます。
Dockerで一般的に使用されるコマンド
基本コマンド
コマンド | 効果 |
---|---|
Dockerバージョン | dockerのバージョン情報を表示できます |
Docker情報 | Dockerのシステム情報、画像とコンテナーの数を表示します |
docker --help | すべてのDockerコマンドを表示 |
dockerコマンド--help | 現在のコマンドのヘルプ情報を表示する |
DockerシステムDF | Dockerの詳細を表示する |
docker volumermデータボリュームフォルダー | Dockerのデータボリュームフォルダーを削除します |
Dockerボリュームプルーン | 無駄なデータ量を削除する |
Dockerボリュームls | Dockerのボリュームを表示する |
Dockerネットワークls | Dockerのネットワークを表示する |
ミラーコマンド
コマンド | 効果 | パラメータ | 例と説明 |
---|---|---|---|
docker run [パラメータ]イメージ名 | ブートミラー | -dバックグラウンドで実行します--rm使い切ったら削除します | docker run -p 8080:8080 -d tomcat |
Docker画像 | すべてのローカルミラーを表示 | -a -q IDのみを表示するすべてを表示 |
名前はMirrorand Dangling Mirrorです。ミラー情報のみが表示され、コンテナには含まれていません。 |
Docker検索画像名 | ミラーリストを検索 | --filter フィルタリングのためにdockerHubに直接アクセスすることをお勧めします |
docker search mysql --filter = STARS = 5000STARSが5000を超えるフィルター画像 |
dockerpullイメージ名 | リモートからミラーを取得します | docker pulltomcatデフォルトlastest バージョン |
|
dockerrmiの名前またはID | 指定されたミラーを削除します | -f $(docker images -aq)すべての画像を削除します | docker rmitomcatはスペースごとに複数の画像を削除できます |
docker imageprune | ぶら下がっている鏡を削除する | DockerプルまたはDockerビルドによってトリガーされる可能性があります | |
dockerタグイメージID新しいイメージ名:バージョン | ミラーの情報を変更する |
dockerrunの説明
パラメータの説明
- --Nameコンテナに名前を割り当てます--nametomcat1
- -dコンテナをバックグラウンドで実行します(デーモンモードで実行します)
- -インタラクティブモードを使用してコンテナdockerrunに実行します-itcentos / bin / bash
/bin/bash
はbashを使用して対話します - -p 8080:8080は、ポートの左側がホストポートであり、右側がコンテナポートであることを指定します
- -Pランダム指定ポート
- -v ./webapps/ROOT/:/usr/tomcat/webapps/ROOT/データボリュームの左側にあるホストのマッピングパス右側のコンテナのマッピングパスはコロンで区切られています。存在しない場合は、自動的に作成されます
- -e環境変数を構成します
- 単語の使用を開始しない場合-dコンテナごとにコンテナを終了したいコンテナを終了
CTRL+P+Q
できませんコンテナの外部に終了します
docker run -v description
- 取り付けはに分かれています 名前付きマウント と匿名マウント
匿名マウント
- docker run -v / etc / nginx / confこれは匿名マウントであり、コンテナ内のディレクトリのみが指定され、ホストディレクトリは指定されていません
- この場合、dockerはコンテナのディレクトリをすぐに作成します
名前付きマウント
- docker run -v conf:/ etc / nginx / confこれは、指定されたボリューム名とディレクトリを名前でコンテナにマウントします。
- この場合、dockerは指定した名前に従ってディレクトリを生成します
これらの2つのマウント方法によって生成されたディレクトリは、dockerのコアディレクトリにあります
/var/lib/docker/volumes # docker存放数据卷的目录
# 进入目录 可以查看 所有的数据卷
root@yufire:/var/lib/docker/volumes# ls
33c1fdb0df03784e20d585bce84266e40a032ce3bb4d26b9f2467c521f3b2d21 ecc57ad17f08d760aab21286e28eb6da56bb8d483d1f43e3fc5d5293d0263824 redis.conf
5c061cd30891f00fb7e44e02f8309cb982083c04ce03050b32a8b11d4f4fa38c metadata.db
指定されたディレクトリをマウントします
- docker run -v / etc / nginx / conf:/ etc / nginx / conf-これは、指定されたディレクトリマウントコンテナとホストディレクトリ共有の自動同期です。
docker run --volumes-from ject
コンテナ間のデータ同期(共有)
docker run -d --name nginx01 nginx # 运行主容器
docker run -d --name nginx02 --volumes-from nginx01 # 使用子容器继承父容器
# 两个容器之间的数据就可以胡互通了
- 継承された親コンテナが閉じられている場合、データはまだそこにありますか?
- 答えはまだあります。サブコンテナが実行されている場合、データが1つしかない場合でも、データが失われることはありません。
- マウントされたコンテナ間でデータが同期され、データが相互に送信されます
結論として
- この方法は、クラスター間の構成共有として使用して、構成を簡素化できます。
Dockerのプル手順
すでに画像をダウンロードしている場合は、ローカルバージョンの単語docker pull
が少なくなります階層化
階層的手段:ローカルの既存の低バージョンと高バージョンを使用して同じ場所を共有し、ローカルを使用して他の異なる場所をダウンロードできます
- 利点:ストレージスペースを大幅に節約
コンテナコマンド
コマンド | 効果 | パラメータ | 例 |
---|---|---|---|
dockerrmの名前またはID | 指定したコンテナを削除します | -f強制削除$(docker ps -aq)すべてのコンテナを削除 | docker rmi tomcat docker rim -f tomcat |
docker ps | 実行中のコンテナを表示する | -実行されていないコンテナを含むすべてのコンテナを表示します-qコンテナのIDのみを表示します | |
docker stats id | コンテナが占有しているホストマシンのリソース状況を表示する | ||
docker startid | 停止したコンテナを開始します | docker start 容器id | |
docker restartid | 停止したコンテナを再起動します | ||
docker stop id | 実行中のコンテナを停止します | docker stop 容器id | |
docker kill id | コンテナを殺す | docker kill container idは、コンテナーがエラーを報告した場合にこのコマンドを使用できます | |
docker exec -it name Orid / bin / bash | 実行中の指定されたコンテナを入力します | / bin / bashは、Ctrl + Dを操作する方法または終了する方法です | |
dockerattachコンテナID | コンテナに入る2番目の方法 | 直接入力 | |
Dockerコンテナのプルーン | 停止したコンテナをすべて削除します | ||
docker build -tname。 | Dockerfileをビルドする | -tは、ビルドされたイメージの名前を指定します。コンテキストを表します | |
docker cpホストディレクトリコンテナID:/ container path | ホストからコンテナにファイルをコピーします | docker cp / usr / local / tomcat 96f7f14e99ab:/ usr / local / tomcat | |
docker cpコンテナID:/コンテナパスホストパス | コンテナからホストにファイルをコピーします | docker cp 96f7f14e99ab:/ usr / local / tomcat / usr / local / tomcat | |
dockerログID | コンテナ起動のログを表示する | -tf --tail10は10ログを表示します | dockerはtomcatまたはidをログに記録します |
docker top id | コンテナのプロセスを表示する | Dockerトップ96f7f14e99ab | |
docker inspect id | コンテナの詳細情報(メタデータ)を表示する | ||
Docker履歴ID | イメージがどのように構築されているかを確認します |
dockerexecコマンドの説明
- docker exec -it container id / bin / bashインタラクティブモードでコンテナーに入り、bashを使用して対話します