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

推薦する

Docker に MySQL と Redis をインストールする方法

この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...

Mac OS に MySQL 5.7.20 をインストールするための詳細なグラフィックとテキストの説明

Mac OS X で TAR.GZ から MySQL 5.7 をインストールする MySQL 5.6...

MySQLデータベースエンジンをInnoDBに変更する

PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...

MySQL の group by に関する簡単な説明

目次1. はじめに2. ユーザーテーブルを準備する2.1 グループ化ルール2.2 グループの使用2....

検証コードケースのjs実装

この記事の例では、検証コードを実装するためのjsの具体的なコードを参考までに共有しています。具体的な...

CSS3 を使用して左上または右上隅にリマインダー ドットを表示するサンプル コード

効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...

レスポンシブウェブデザインを実現するためにIEでCSS3メディアクエリをサポートする

今日の画面解像度は、320 ピクセル (iPhone) ほど小さいものから、2560 ピクセル以上 ...

nginx での書き換えジャンプの実装

1. 新旧ドメイン名のジャンプ適用シナリオ: ドメイン名ベースのリダイレクト。会社の古いドメイン名は...

CSS ボックスモデル内のパディングと略語の詳細な説明

上図のように、パディング値は時計回り(右上、右下)の複合属性であり、パディングの内側の余白がボックス...

MySQL学習データベース検索文DQL小百章

目次1. データの簡単な取得2. データの並べ替えと取得2.1. 基本構文2.2. ソート方向を指定...

MySQLはinit-connectを使用してアクセス監査機能の実装を増やします

まず init-connect を通じて mysql 接続を初期化し、次にインスタンスに接続する必要...

MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...

ffmpeg 中国語パラメータの詳細な説明

FFMPEG 3.4.1 バージョンパラメータの詳細使用方法: ffmpeg [オプション] [[入...

Vue3コンポーネントの開発詳細

目次1. はじめに2. コンポーネント開発1. コンポーネントの構成2. ヘッダーコンポーネントの開...

vue WatchとComputedの使用の概要

目次01. リスナーウォッチ(1)機能(2)特性と方法(3)監視対象(4)リスニングアレイ02. 計...