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

推薦する

Web 開発チュートリアル クロスドメイン ソリューションの詳細な説明

序文この記事では、主にWeb開発のためのクロスドメインソリューションを紹介し、参考と学習のために共有...

MySQL でデータを削除してもテーブル ファイルのサイズが変更されないのはなぜですか?

長期間稼働しているデータベースの場合、テーブルがストレージ領域を占有しすぎるという問題がよく発生しま...

Linuxでホスト名を永続的に変更する方法

ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...

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

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

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...

Docker 用ビジュアル UI 管理ツール Portainer のインストールと使用方法の分析

Portainer は、ステータス表示パネル、アプリケーション テンプレートの迅速な展開、コンテナ ...

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...

Tudou.comのホームページのデザイン方法

<br />私は数年間フロントエンドに取り組んできました。フロントエンドについて完全に理...

Vue の v-model ディレクティブと .sync 修飾子の違いの詳細な説明

目次vモデル.sync微妙な違い機能シナリオを要約します。 vモデル <!--親コンポーネント...

誤って削除されたデータを復元するための mysqlbinlog コマンドを使用した mysql の実装

実験環境: MYSQL 5.7.22バイナリログを有効にするログ形式 MIXED実験プロセス: 1....

VC6.0をWIN10にインストールすると使用できない問題の解決方法

VC6.0は確かに古すぎるVC6.0は昔の開発ツールです。現在のwin10では対応していません。しか...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

MySQL接続クエリにおけるととwhereの違いの簡単な分析

1. テーブルを作成する テーブル「学生」を作成( `id` int(11) NULLではない、 `...

JavaScriptのモジュール性を理解する方法

目次1. ブラウザのサポート2.エクスポートモジュールのエクスポート3. モジュールをインポートする...