DockerとDocker-Composeの使用例

DockerとDocker-Composeの使用例

Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです。利便性とスピードはすでに Docker の最大の利点です。以前は数日、あるいは数週間かかっていたタスクも、Docker コンテナを使用すれば数秒で完了できます。

建築

  • Docker デーモン: Docker デーモンは、ホスト (DOCKER-HOST) 上で実行されるバックグラウンド プロセスです。 Docker クライアントを介して通信できます。
  • クライアント (Docker クライアント): Docker クライアントは Docker のユーザー インターフェイスであり、ユーザー コマンドと構成識別子を受け入れ、Docker デーモンと通信できます。図中のdocker buildなどはすべてDocker関連のコマンドです。
  • イメージ: Docker イメージは、Docker コンテナを作成するための手順が含まれた読み取り専用テンプレートです。これはシステム インストール CD に少し似ています。システム インストール CD を使用してシステムをインストールできます。同様に、Docker イメージを使用して Docker イメージ内のプログラムを実行できます。
  • コンテナ: コンテナはイメージの実行可能なインスタンスです。イメージとコンテナの関係は、オブジェクト指向プログラミングにおけるクラスとオブジェクトの関係に多少似ています。コンテナは、Docker API または CLI コマンドを使用して起動、停止、移動、削除できます。
  • レジストリ: Docker レジストリは、イメージを集中的に保存および配布するためのサービスです。 Docker イメージをビルドしたら、現在のホスト上で実行できます。ただし、このイメージを他のマシンで実行する場合は、手動でコピーする必要があります。現時点では、Docker Registry を使用すると、イメージを手動でコピーする必要がなくなります。 Docker レジストリには複数の Docker リポジトリを含めることができ、各リポジトリには複数のイメージ タグを含めることができ、各タグは Docker イメージに対応します。これは、Maven のウェアハウスに多少似ています。Docker Registry を Maven のウェアハウスと比較すると、Docker ウェアハウスは jar パッケージのパスとして理解でき、イメージ タグは jar パッケージのバージョン番号として理解できます。 Docker レジストリは、パブリック Docker レジストリとプライベート Docker レジストリに分けられます。 最も一般的に使用される Docker レジストリは公式の Docker Hub であり、これがデフォルトの Docker レジストリでもあります。 Docker Hub には優れたイメージが多数保存されており、Docker コマンドを使用してダウンロードして使用できます。

インストール

初心者向けの手順に従って、yum を使用してインストールします。

一般的なコマンド

ミラー関連

  • docker search java: Docker Hub (または Alibaba Mirror) リポジトリでキーワード (java など) を含むイメージを検索します。
  • docker pull java:8: リポジトリからイメージをダウンロードします。バージョンを指定する場合は、コロンの後に指定します。
  • docker イメージ: ダウンロードしたイメージを一覧表示する
  • docker rmi java: ローカルイメージを削除する
  • Dockerビルド: イメージをビルドする

コンテナ関連

  • docker run -d -p 91:80 nginx : バックグラウンドで nginx を実行します。イメージがない場合は、まずそれをダウンロードし、コンテナのポート 80 をホストのポート 91 にマップします。
  • -d: バックグラウンドで実行
  • -P: ランダムポートマッピング
  • -p: ポートマッピングを指定する
  • -net: ネットワークモード
  • docker ps: 実行中のコンテナを一覧表示する
  • docker ps -a : すべてのコンテナを一覧表示する
  • docker stop container id: コンテナを停止します
  • docker kill コンテナ id: コンテナを強制停止
  • docker start container id: 停止したコンテナを起動する
  • docker コンテナ ID を検査: コンテナのすべての情報を表示します
  • docker コンテナ ログ コンテナ ID: コンテナ ログの表示
  • docker top コンテナID: コンテナ内のプロセスを表示する
  • docker exec -it コンテナID /bin/bash: コンテナに入る
  • exit: コンテナを終了する
  • docker rm コンテナID: 停止したコンテナを削除します
  • docker rm -f コンテナID: 実行中のコンテナを削除します

すべてのコマンド

  • ドッカー
  • docker コマンド --help

イメージを構築する

  • イメージテンプレートを決定します: java、nginxなど
  • 新しいDockerfileを作成する
  • Dockerfileの指示に従ってDockerfileの内容を完成させます
  • Dockerfile ファイルがあるパスで docker build -t imageName:tag . を実行します。-t はイメージ名を指定し、末尾のドットは Dockerfile ファイルのパスを示します。
  • docker run -d -p 92:80 imageName:tag を実行します。

注: RUN コマンドはイメージ ファイルの構築フェーズ中に実行され、実行結果がイメージ ファイルにパッケージ化されます。CMD コマンドはコンテナーの起動後に実行されます。さらに、Dockerfile には複数の RUN コマンドを含めることができますが、CMD コマンドは 1 つだけ含めることができます。 CMD コマンドを指定した後は、docker コンテナ実行コマンドにコマンドを追加できないことに注意してください。追加すると、CMD コマンドが上書きされます。

Docker の作成

Docker Compose は、複数のコンテナで構成されるアプリケーションを定義および実行するために Docker が提供するコマンドライン ツールです。 Compose を使用すると、YAML ファイルを通じてアプリケーションのサービスを宣言的に定義し、単一のコマンドでアプリケーションを作成して起動できます。

以上が今回ご紹介した関連知識の全てです。補足事項がありましたら、123WORDPRESS.COM 編集部までご連絡ください。

以下もご興味があるかもしれません:
  • docker-compose ポートと expose の違いの詳細な説明
  • docker-composeの詳細なインストールと使用方法
  • Docker-Composeコマンドの使い方の詳しい説明

<<:  MySQL エラー 1290 (HY000) の解決方法

>>:  Mysql の大きな SQL ファイルの高速リカバリ ソリューションの共有

推薦する

JavaScriptのスタックとコピーの詳細な説明

目次1. スタックの定義2. JSスタックの調査1. スタックとヒープ2. 基本型と参照型3. 値渡...

Tomcat クラスローダーの実装方法とサンプルコード

Tomcat は内部的に複数の ClassLoader を定義し、アプリケーションとコンテナーが異な...

MySQL 5.7.17 のインストールと設定のグラフィックチュートリアル

MySQL の機能: MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレー...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

HTMLコードテキストボックスの制限入力テキストボックスが灰色になり、制限テキストボックスの入力

方法 1: readonly 属性を true に設定します。入力値=読み取り専用 readOnly...

Win7 64 ビット版に MySQL 5.7 をダウンロードしてインストールする際によくある問題の概要

1. 公式ウェブサイトからMySQLをダウンロードします。 これが私たちが探しているものです、win...

nginxでgzip圧縮を有効にする手順を完了する

目次序文1. gzip圧縮を設定する2. 詳細設定3. nginxサービスを再起動する要約する序文ウ...

HTML サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。定義と使用法: <...

MySQLログに関する知識のまとめ

目次SQL実行順序ビンログ何ですかいつ生産されるのか何の役に立つんだディスクはいつドロップされますか...

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

CentOS に Nginx をインストールする方法

公式ドキュメント: https://nginx.org/en/linux_packages.html...

Vue 要素と Nuxt の使用に関するヒントを共有する

1. 要素時間選択提出フォーマット変換例えば 2018年9月7日金曜日 00:00:00 GMT+0...

css-loader を使用して vue-cli で css モジュールを実装する

【序文】 Vue と React の CSS モジュール ソリューションはどちらも、実装にローダーに...

HTML内のフレームセットタグが正常に表示されない原因の解析と解決方法

<frameset></frameset>は皆さんもよくご存知のものです。こ...