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 ページでカウントダウンを実装します

ブログ    

推薦する

Mysqlはブール型の演算を設定します

Mysqlはブール型を設定します1. Tinyintタイプテストテーブルを作成し、blフィールドをブ...

CSS を使用してマウスをホバーすることで他のタグのスタイルを変更するサンプルコード

序文:私の知る限り、現在 CSS で制御できるのは、タグをホバーしたときにそのタグの下の兄弟タグとサ...

Dockerコンテナとホスト間のデータ相互作用の概要

序文実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共...

Vue大画面表示適応方法

この記事では、vueの大画面表示適応の具体的なコードを参考までに紹介します。具体的な内容は以下のとお...

JavaScript を使用してセカンダリ メニューを作成する

この記事では、セカンダリメニュー効果を実現するためのJavaScriptの具体的なコードを参考までに...

Linux (Ubuntu) での MySQL 5.7.17 のインストールと設定のチュートリアル

序文以前、MySQL 5.6 をインストールしました。3 か月後、開発者から MySQL で JSO...

HTML の 2 つのタブ ナビゲーション間の競合の解決方法

まず問題の説明から始めましょう:同じページで、1 つのタブに float:left が必要で、もう ...

VueはPCカメラを呼び出して写真機能を実現します

この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...

CSS スタッキングと Z インデックスのサンプルコード

カスケードとカスケードレベルHTML 要素は 3 次元の概念です。水平方向と垂直方向に加えて、「Z ...

MySQL トランザクションの詳細

目次導入取引の4つの特徴トランザクション分離レベル確認するMVCC現在の読書スナップショット読み取り...

jQuery で従業員管理登録ページを実装する

この記事では、従業員管理登録ページを実装するためのjQueryの具体的なコードを例として紹介します。...

IE8はマルチ互換モードを使用してWebページを正常に表示します

IE8には複数の互換モードがあります。 IE プラットフォームの設計者である Chris Wilso...

MySQL ダーティ ページ フラッシュとテーブル スペースの縮小の原理の分析

mysql ダーティページWAL メカニズムにより、InnoDB はステートメントを更新するときに、...

Dockerカスタムブリッジdocker0とdockerのコマンド操作の開始、終了、再起動

質問会社がサーバーを移行した後、デフォルトで作成された docker0 ブリッジが会社の外部ネットワ...