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

推薦する

vue で wangEditor を使用する方法と、データをエコーし​​てフォーカスを取得する方法

バックグラウンド管理プロジェクトを行う際には、リッチテキストエディタがよく使用されます。ここでは、非...

mysql.data.dll ドライバーのさまざまなバージョンの簡単な分析

ここにmysqlドライバmysql.data.dllがあります知らせ:ここではX86バージョンが多く...

MySQLトリガーの使用

目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...

HttpsページでBaiduシェアを使用するためのソリューション

サイト全体で https アクセスを有効にしてから、共有コードが利用できなくなり、有効になっていた小...

nginxリバースプロキシwebSocket設定の詳細な説明

最近、プロジェクトで作業しているときに webSocket プロトコルを使用し、WeChat アプレ...

Xtrabackup を使用して MySQL をバックアップおよび復元する方法

目次1. バックアップ1.1 万全の準備1.2 追加の準備2 バックアップとリカバリ2.1 データの...

CSS 動的高さ遷移アニメーション効果の実装

この質問は、Nuggets のメッセージから生まれました。友人が、次のコードの高さ遷移アニメーション...

IE8でラベルの背景画像が表示されない問題の解決方法

今日、ちょっとした問題に遭遇し、長い間苦労しました。そのことを皆さんにシェアしたいと思います。 a ...

この SQL 書き込み方法では本当にインデックスが失敗するのでしょうか?

序文インターネット上には、MySQL でインデックスにヒットできないさまざまな状況をまとめた記事がよ...

div ボックス モデルの使用経験の概要

ボックスモデルの計算<br />マージン + ボーダー + パディング + コンテンツC...

Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順

1. GitLabの紹介Gitlab 公式アドレス: https://about.gitlab.co...

ウェブページのカラーマッチング例分析: 緑色のカラーマッチングウェブページ分析

<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...

クエリプロファイラを使用して MySQL ステートメントの実行時間を表示する方法

前回の記事では、MySQL ステートメントの実行時間をチェックする 2 つの方法を紹介しました。今日...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...