Linux で docker-compose を使用したソフトウェア構成の詳細な説明

Linux で docker-compose を使用したソフトウェア構成の詳細な説明

序文

この記事では、docker-compose の構成をいくつか紹介します。これらを参考にして、独自の docker ベースの開発/運用環境の構成をまとめることができます。詳しい紹介を見てみましょう。

dockerとdocker-composeをインストールする

dockerをインストールする

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

docker-compose をインストールする

sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

専用ネットワークを作成する

dockerネットワークを使用して、dockerソフトウェアが相互にアクセスできるように、専用の共通ネットワークme_gatewayを作成します。

docker ネットワーク me_gateway を作成します

docker-compose デプロイ traefik

リバース プロキシ サーバーは非常に高速で、サービスの自動検出、https などの自動アプリケーション、プロジェクト アドレス、中国語のドキュメントなどの優れた機能を備えています。

ドッカーの作成

これはtraefikを使用したdocker-compose.yml設定の例です。

このうち、マウントされている ./traefik.toml がその構成です。

マウントされたacme.jsonはLet's Encryptの設定です

バージョン: '3'

バージョン: '3'

サービス:
 トラエフィック:
 画像: traefik:1.7.4
 コンテナ名: me_traefik
 ポート:
 - '80:80'
 - '443:443'
 - '8090:8090'
 ボリューム:
 - /var/run/docker.sock:/var/run/docker.sock
 - ./traefik.toml:/traefik.toml
 - ./acme.json:/acme.json
 ネットワーク:
 - ウェブゲートウェイ
ネットワーク:
 ウェブゲートウェイ:
 外部の:
 名前: me_gateway

トラエフィック

詳細な設定の説明: http://docs.traefik.cn/toml#acme-lets-encrypt-configuration

以下は例です。検証の設定時に問題が発生した場合は、次の設定またはこの記事のコメントを参照してください。

################################################################
# グローバル設定
################################################################

# デバッグモードを有効にする
#
# オプション
# デフォルト: false
#
デバッグ = false

# ログレベル
#
# オプション
# デフォルト: "ERROR"
#
ログレベル = "エラー"

# エントリポイントを指定しないフロントエンドで使用されるエントリポイント。
# 各フロントエンドは独自のエントリポイントを指定できます。
#
# オプション
# デフォルト: ["http"]
#
デフォルトエントリポイント = ["http","https"]
################################################################
# エントリポイントの設定
################################################################

# エントリポイントの定義
#
# オプション
# デフォルト:
# エントリポイントの基本認証を有効にするには
# ユーザー名/パスワードを2セット使用します: test:test と test2:test2
# パスワードは MD5、SHA1、または BCrypt で暗号化できます。htpasswd を使用してこれらのユーザー名とパスワードを生成できます。
# [エントリポイント]
# [エントリポイント.http]
# アドレス = ":80"
# [エントリポイント.http.auth.basic]
# ユーザー = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]
#
# エントリポイントのダイジェスト認証を有効にするには
# ユーザー名/ドメイン/パスワードを 2 セット使用します: test:traefik:test と test2:traefik:test2
# htdigest を使用してこれらのユーザー名/ドメイン/パスワードを生成できます [entryPoints]
 [エントリポイント.http]
 アドレス = ":80"
#[エントリポイント.http.リダイレクト]
#エントリポイント = "https"
 [エントリポイント.https]
 アドレス = ":443"
 [エントリポイント.https.tls]
 [entryPoints.webentry]
 アドレス = ":8090"
 [エントリポイント.webentry.auth]
 [エントリポイント.webentry.auth.basic]
  ユーザー = ["テスト:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
################################################################
# APIとダッシュボードの設定
################################################################

# APIとダッシュボードを有効にする
[API]
ダッシュボード = true
エントリポイント = "webentry"

################################################################
# Ping設定
################################################################

# pingを有効にする
[ピン]

 # 関連するエントリポイントの名前
 #
 # オプション
 # デフォルト: "traefik"
 #
 # エントリポイント = "traefik"

################################################################
# Docker バックエンド構成#################################################################################

# デフォルトのドメイン名を使用します。
# コンテナに「traefik.domain」ラベルを設定することで上書きできます。
# Dockerバックエンド構成を有効にする [docker]
エンドポイント = "unix:///var/run/docker.sock"
ドメイン = "yimo.link"
ウォッチ = 真
デフォルトで公開 = false
usebindportip = true
swarmMode = 偽
ネットワーク = "me_gateway"

[アクメ]
メールアドレス = "[email protected]"
ストレージ = "acme.json"
エントリポイント = "https"
オンデマンド = false
onHostRule = 真
 [acme.httpチャレンジ]
 エントリポイント="http"

docker-composeはGogsをデプロイし、traefikを使用してドメイン名をバインドします

mysqlでビルドしたい場合は、この設定を参照してください。

ドッカーの作成

バージョン: '3'
サービス:
 メゴグス:
 再起動: 常に
 画像: ゴグス/ゴグス
 コンテナ名: me_gogs
 ボリューム:
 - ./データ:/データ
 - ./logs:/app/gogs/log
 ポート:
 - '10022:22'
 - '10080:3000'
 ラベル:
 - 'traefik.backend=me_gogs'
 - 'traefik.frontend.rule=ホスト:git.yimo.link'
 - 'traefik.enable=true'
 - 'traefik.protocol=http'
 - 'traefik.port=3000'
 ネットワーク:
 - ウェブゲートウェイ
ネットワーク:
 ウェブゲートウェイ:
 外部の:
 名前: me_gateway

初期化中に、ドメイン名を0.0.0.0またはgit.yimo.linkに設定する必要があります。

つまり、./data/gogs/conf/app.iniの項目は

ドメイン = git.yimo.link

docker-compose デプロイ mysql

同じネットワーク上で、me_mysqlを使用して直接接続できることは注目に値します。

ドッカーの作成

バージョン: '3'
サービス:
 私のMySQL:
 イメージ:mysql:5.7.21
 コンテナ名: me_mysql
 ボリューム:
 - ./data:/var/lib/mysql
 ポート:
 - '3306:3306'
 環境:
 -MYSQL_ROOT_PASSWORD=ルート
 ネットワーク:
 - ウェブゲートウェイ
ネットワーク:
 ウェブゲートウェイ:
 外部の:
 名前: me_gateway

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Docker Compose 構成ファイルの記述とコマンドの使用例
  • Docker Compose を使用して ElasticSearch 構成プロセスを構築およびデプロイする
  • Docker-compose インストール yml ファイルの設定方法
  • docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明
  • Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル
  • Docker.v19 で Docker Compose オーケストレーション ツールをインストールして構成する方法
  • Spring環境を構成するためのDocker-composeの手順
  • Docker Compose 構成ファイルパラメータの詳細な説明

<<:  CentOS7 は rpm パッケージを使用して mysql 5.7.18 をインストールします

>>:  JavaScript はフロントエンド Web ページでカウントダウンを実装します

推薦する

Linux の who コマンド例の紹介

誰についてシステムにログインしているユーザーを表示します。 who コマンドを実行すると、現在システ...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

Mysql SQL ステートメントのコメント

MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...

MySQL で絵文字表現を挿入できない理由と解決策

失敗のシナリオMySQL データベースに絵文字表現を挿入するために JDBC を呼び出すと、例外ja...

Docker に Kong ゲートウェイをインストールする方法の例

1. Dockerネットワークを作成する docker ネットワーク作成 kong-net 2. デ...

Hadoopカウンターとデータクリーニングの適用

データクリーニング (ETL)コアビジネスの MapReduce プログラムを実行する前に、まずデー...

ページにスクロールバーが表示されたときに、スクロールバーがページ幅に影響しないようにする方法

本体の幅をウィンドウの幅に設定します(次のスクリプトで制御されます) $("body&qu...

CSS変数を使用してスタイルを変更する方法の例

質問js を使用して CSS 疑似クラス スタイルを変更するにはどうすればよいでしょうか?しかし、j...

CSS フォント、テキスト、リストのプロパティの詳細な紹介

1. フォントのプロパティcolorは、div{color:red;}のようにテキストの色を指定しま...

CentOS7でPHPスケジュールタスクを実行する方法

序文この記事は主に CentOS7 で PHP スケジュールタスクを実行することに関する関連コンテン...

JavaScript オブジェクトの組み込みオブジェクト、値型、参照型の説明

目次物体オブジェクト定義オブジェクトのメンバーを反復処理するJS組み込みオブジェクト数学オブジェクト...

CSS3は水平方向の中央揃え、垂直方向の中央揃え、水平方向と垂直方向の中央揃えのサンプルコードを実装しています。

フロントエンドの担当者であれば、面接でも仕事中でも、「CSS を使用して中央揃えにする」という効果に...

MySQL でインデックス構造として B+ ツリーを使用する利点は何ですか?

序文MySQL では、Innodb と MyIsam の両方がインデックス構造として B+ ツリーを...

vuex で履歴を実装するためのサンプルコード

私は最近、ユーザー操作を元に戻す、またはやり直す機能を備えたビジュアル操作プラットフォームを開発して...

Docker ベースの Selenium 分散環境の構築

1.画像をダウンロードするdocker pull selenium/hub docker pull ...