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

推薦する

MySQL に配列を保存するサンプルコードと方法

多くの場合、ストアド プロシージャを作成するときに配列がよく使用されますが、MySQL ではストアド...

ウェブ標準学習リソースの素晴らしいコレクション

これらの仕様は、下位互換性のあるドキュメントを Web 上で公開し、できるだけ幅広いユーザーがアクセ...

ウェブページの読みやすさを向上させるいくつかの方法

1. 対照的な色を使用します。ここでのコントラストとは、テキストの色と背景色のコントラストを指します...

docker run によって起動されたコンテナがハングしてデータが失われた場合の対処方法

シナリオの説明あるシステムでは、機能サービスはdocker stack deploy xxxで起動し...

MySQL テーブルの断片化を解消し、スペースを再利用する方法

目次MySQL テーブルの断片化の原因行の断片化行内断片化空き領域の断片化MySQL で極度に断片化...

docker-machineの使い方の詳しい説明

Docker-machineはDockerが公式に提供しているDocker管理ツールです。これは d...

jQuery はテーブルのページング効果を実装します

この記事では、テーブルのページング効果を実現するためのjQueryの具体的なコードを参考までに紹介し...

Navicatを使用してクラウドサーバーデータベースにリモート接続する方法

秘密鍵を開かずにリモート サーバーのデータベースに接続するのは非常に便利です。新しい接続でデータを入...

Amap を使用した React 実装例 (react-amap)

React の PC 版は Amap を使用するようにリファクタリングされました。情報を検索したと...

初心者向けウェブサイト構築チュートリアル: 10 日間でウェブサイトの構築方法を学ぶ

10 日間のチュートリアルでは、最も理解しやすい言語を使用し、最も基本的なことから始めて、誰もが W...

SQL ファジー クエリ レポート: ORA-00909: パラメータの数が無効です。解決策

あいまいクエリにOracleデータベースを使用する場合、コンソール エラーは次の図に表示されます。理...

CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します

1. CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します1. 一般的なスタ...

MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...

Docker+Jenkins+Gitlab+Djangoアプリケーションデプロイ実践の詳細な説明

1. 背景インターネット アプリケーションの急速な更新と反復という状況では、従来の手作業や単純なスク...

HTMLを使用してシンプルなメールテンプレートを作成する

今日は、「ローテク」の問題について書きたいと思います。ちなみに、私は JavaScript Week...