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 ファイルの高速リカバリ ソリューションの共有

推薦する

js を使用してネットワークカメラを呼び出し、一般的なエラーを処理します

最近、業務上の理由により、Web ページ上のさまざまなネットワーク カメラにアクセスしてデバッグする...

Linux Jenkins 構成スレーブノード実装プロセス図

序文: Jenkins のマスター スレーブ分散アーキテクチャは、主に、Jenkins に単一ポイン...

Nginx キャッシュ設定例

Web アプリケーションの開発とデバッグを行う際には、テストのためにブラウザのキャッシュをクリアした...

Dockerでパラメータ変数を外部から指定する方法

この記事は主にDockerでパラメータ変数を外部から指定する方法を紹介します。この記事のサンプルコー...

MySQLのロック構造の詳細な説明

Mysqlは3種類のロック構造をサポートしていますテーブルレベルのロック、低オーバーヘッド、高速ロッ...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

ReactにおけるuseRefの具体的な使い方

React の経験がある人なら、コンポーネントインスタンスオブジェクトや DOM オブジェクトを取得...

CentOS7 64ビットインストールmysqlグラフィックチュートリアル

MySQL をインストールするための前提条件: CentOS 7 64 ビットをインストールし、Ce...

Docker での環境変数の使用とよくある問題の解決策

序文Docker はコンテナの環境変数を設定できます。設定方法は 2 つあります。イメージを作成する...

入力のsize属性とmaxlength属性の違い

最近、プロジェクトで input size 属性と maxlength 属性を使用しました。以前は、...

Ubuntu 18.04 に Nvidia グラフィック カード ドライバーをインストールするチュートリアル (画像とテキスト付き)

0. 事前準備BIOS でセキュア ブートを無効にします。無効にしないと、サードパーティ ソースを...

JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

目次トピック分析する使用目的解決:コードは次のように実装されます。分析:配列とポインタ解決:コードは...

ウェブサイトデザインの経験 ウェブサイト構築におけるよくある間違いのまとめ

注意: 計画、設計、開発のいずれの場合でも、これらの間違いは避けなければなりません。 1. ナビゲー...

Vue3 ページ、メニュー、ルートの使用

目次1. メニューをクリックしてジャンプ1. ページ名の統一2. 管理ページを追加3. ルートを追加...