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

推薦する

JS は Baidu 検索ボックスを実装します

この記事の例では、Baidu検索ボックスを実装するためのJSの具体的なコードを参考までに共有していま...

nginxを使用して取得したIPアドレスが127.0.0.1である問題を解決する

IPツールを取得 lombok.extern.slf4j.Slf4j をインポートします。 org....

HTMLテーブルで、各セルに異なる色と幅を設定します

設定が有効にならない場合が多いため、幅や高さなどをテーブル内で直接設定しないことをお勧めします。スタ...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

あなたを救うために、私のテーブルは何を使えばいいでしょうか (Haiyu Blog)

テーブルはかつて、Web ページの開発、つまりレイアウトにおいて非常に重要な役割を果たしていました。...

DIVのぼかし機能を実装する方法

マウスを動かしたときにDIVが消えるように手ぶれ補正を使用するdiv タグ自体は onblur イベ...

Macシステムをインストールした後にVMWareがフルスクリーンで表示できない問題を解決する

システム: VMTOOLs ダウンロード:リンク: https://pan.baidu.com/s/...

虫眼鏡コンポーネントのネイティブ js 実装

この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...

MySql 学習ノートにおけるトランザクション分離レベルの詳細な説明

背景トランザクションについて話すとき、誰もがそれに精通している必要があります。MySQL データベー...

CentOS に MySQL をインストールしてリモート アクセスを設定する方法

1. MySQLリポジトリソースをダウンロードする$ wget http://repo.mysql....

MySQL パスワード変更方法の概要

MySQL 5.7 より前のバージョンのパスワードを変更する方法:方法1: SET PASSWORD...

フロントエンド開発における一般的なテクニックのまとめ

1. 記事タイトルリストの右側に日付を表​​示する方法:コードをコピーコードは次のとおりです。 &l...

Linux システムをバックアップする docker コマンドの詳細な説明

tar バックアップ システム sudo tar cvpzf backup.tgz --exclud...

CSSタグの表示モードの詳細な説明

ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...