Docker を使ってゼロから SOLO 個人ブログを構築する方法

Docker を使ってゼロから SOLO 個人ブログを構築する方法

1. 環境整備

パブリックネットワークでブログにアクセスしたい場合は、まずクラウドサーバー、つまり大手クラウドベンダーからサーバーを借りる必要があります。たとえば、私は68元を費やしてQingyunから1コア2Gサーバーを購入しました。今見ているブログはこのサーバー上にあります。専用のドメイン名も購入するのが最善です。年に12回もあれば十分です。

2. Dockerをインストールする

ここに画像の説明を挿入

Solo ブログのデプロイには Docker を使用するためです。そのため、まずはdockerをインストールする必要があります。dockerの紹介については、Baiduでご自身で検索してください。

yumソースを設定する

sudo yum インストール -y yum-utils
sudo yum-config-manager \
--リポジトリを追加\
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Dockerをインストールする

sudo yum install -y docker-ce docker-ce-cli containerd.io

起動する

systemctl で docker を有効にする --now

構成の高速化

ここで、dockerの本番環境のコア構成cgroupを追加します。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "レジストリミラー": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "ログドライバー": "json ファイル",
  「ログオプション」: {
    "最大サイズ": "100m"
  },
  "ストレージ ドライバー": "overlay2"
}
終了
sudo systemctlデーモンリロード
sudo systemctl dockerを再起動します

テスト:

dockerのバージョンを入力し、次の画面が表示されたらインストールは成功です。

画像.png

3. MySQLマスタースレーブデータベースをインストールする

すでにdockerがインストールされているので、コマンドを直接使用して、1回のクリックでmysqlデータベースをデプロイできます(著者がデプロイしたマスタースレーブmysql)

3.1、MySQL環境の準備

mkdir -p /data/master/data/mysql-master && mkdir -p /data/master/data/mysql-slave ##データディレクトリ mkdir -p /data/master/master && mkdir -p /data/master/slave ##構成ディレクトリ

設定ディレクトリに 2 つの設定ファイル (それぞれ master.cnf と slave.cnf) を配置します。内容は次のようになります。

[root@ウェブサイトマスター]# cat master/master.cnf
[mysqld]
ログ bin = mysql bin
binlog_format=行
サーバーID=1
ログエラー=/var/log/mysqld.log


[root@ウェブサイトマスター]# cat slave/slave.cnf
[mysqld]
ログ bin = mysql bin
binlog_format=行
サーバーID=2
ログエラー=/var/log/mysqld.log

3.2. MySQLマスターデータベースとスレーブデータベースを起動する

注: ここでのパスワードは123456に設定されており、MySQLのデフォルトのデータストレージディレクトリは/data/master/dataにマッピングされています。

 docker run -itd --name mysql-master -v /data/master/data/mysql-master:/var/lib/mysql -v /data/master/master:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.6
 docker run -itd --name mysql-slave -v /data/master/data/mysql-slave:/var/lib/mysql -v /data/master/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 mysql:5.6

3.3. MySQLメインデータベースにログインする

docker ps -a ## 2つのmysqlデータベースのステータスが両方ともUPであるかどうかを確認します
docker exec -it mysql-master /bin/bash
mysql -u root -p123456 ## mysqlにログイン
show variables like 'log_bin'; ##bin-log のオープン状態を確認します。ON の場合は、正常にオープンされていることを意味します。マスタースレーブ同期のために binlog を開く必要があります。
show master status; ## クエリされたファイル名と位置を覚えておいてください。これらは、後でスレーブ データベースを構成するときに使用されます。 ## ユーザーを作成し、権限を付与します CREATE USER 'bakup'@'%' IDENTIFIED BY '123456';
*.* のすべての権限を 'bakup'@'%' に付与します。 
データベースをソロで作成します。

3.4. MySQLスレーブライブラリにログインする

 docker exec -it mysql-slave /bin/bash ## スレーブライブラリに入る mysql -u root -p123456 ## mysqlにログイン
 マスターをmaster_host='192.168.1.5'、master_port=3306、master_user='bakup'、master_password='bakup'、master_log_file='mysql-bin.000001'、master_log_pos=154に変更します。##マスタースレーブ接続を構成します。start slave; ##スレーブバックアップを開始します。show slave status\G; ##ステータスを表示します。

2 つの「はい」が表示されたら完了です。

ここに画像の説明を挿入

3.5、マスタースレーブパラメータの説明

  • master_host: マスターデータベースの IP アドレス/サーバーアドレス
  • master_port: マスターライブラリのポート
  • master_user: マスターデータベースによって開かれたユーザー
  • master_password: ユーザーのパスワード
  • master_log_file: マスター ライブラリのログ ファイル (バイナリ ログ ファイル) が同期されます。上記のマスターステータスのファイルです
  • master_log_pos: 上記のマスターステータス表示の位置

4. 個人ブログを立ち上げる

すべての準備が完了したら、ソロのインストールを開始できます。
docker ソロスタート

docker run --detach --name solo --env RUNTIME_DB="MYSQL" --env JDBC_USERNAME="root" --env JDBC_PASSWORD="123456" --publish 8080:8080 --link mysql-master:mysql-master --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" --env JDBC_URL="jdbc:mysql://192.168.1.5:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=8080

docker logs solo ## コンテナ solo のログを表示します [INFO ]-[2021-11-12 18:30:32]-[org.b3log.solo.Server:254]: Solo が起動しています [ver=4.3.1, os=Linux, isDocker=true, inJar=false, luteAvailable=false, pid=1, runtimeDatabase=MYSQL, runtimeMode=PRODUCTION, jdbc.username=root, jdbc.URL=jdbc:mysql://192.168.1.5:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC]
[INFO ]-[2021-11-12 18:30:34]-[org.b3log.solo.service.InitService:177]: Solo を初めてセットアップします。データベース内のテーブルを初期化します [MYSQL]
[警告]-[2021-11-12 18:30:36]-[org.b3log.solo.service.InitService:150]: Solo は初期化されていません。ブラウザを開いて Solo を初期化してください。

Solo は初期化されていません。ブラウザを開いて Solo を初期化してくださいというメッセージが表示されたら、Solo は正常にインストールされましたが、初期化されていないことを意味します。先ほど起動したポートが 8080 であることがわかります。ドメイン名プラスポートを使用するのは低いように感じるので、nginx を使用して転送します。

5. Nginx はリバースプロキシを実装する ソロブログ

nginx のインストールについては、ここでは詳しく説明しません。学生は Baidu にアクセスして設定ファイルを探してください。

http {
    ファイル送信オン;
    mime.types を含めます。
    デフォルトタイプ アプリケーション/オクテットストリーム;
    キープアライブタイムアウト65;
    gzip オン;
    アップストリームバックエンド{
      サーバー localhost:8080;
    }
    サーバー{
        聞く 80;
        サーバー名 yunxue521.top;
       位置 / {
        proxy_pass http://backend$request_uri;
        proxy_set_header ホスト $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        }
}

ローカル マシンのポート 8080 を指すバックエンド アドレスを定義していることがわかります。Nginx はポート 80 をリッスンします。ポート 80 にアクセスすると、ポート 8080 に転送され、ポート転送が実現されます。

VI. 実績の表示

ここに画像の説明を挿入

これで、Docker を使用して SOLO 個人ブログをゼロから構築する方法に関するこの記事は終了です。Docker を使用して SOLO 個人ブログをゼロから構築することに関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。

以下もご興味があるかもしれません:
  • ブログをDockerに移行する

<<:  HTML と CSS を使用して絵文字付きのコメント ボックスを作成する方法のチュートリアル

>>:  親要素に対する CSS 子要素の配置の実装

推薦する

MySQL セレクトキャッシュメカニズムの使用に関する詳細な説明

MySQL クエリ キャッシュはデフォルトでオンになっています。ある程度、クエリの効果は向上しますが...

Vue で ToDo アプリケーションを実装する例

背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...

HTML で margin:0 auto を使用するとページ全体が中央に配置されない問題の解決方法

今日、jsp ページを書きました。<div style="margin:0 auto...

MySQL 学習データベースバックアップの詳細な説明

目次1.DB、DBMS、SQL 2. データベースの特徴3. SQL分類4. MySQLを起動および...

mysql における mydumper と mysqldump の比較

いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも...

標準SQL更新ステートメントの3つの用途についての簡単な理解

1. 環境: MySQL-5.0.41-win32 Windows XP プロフェッショナル2. テ...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...

Vue カスタム箇条書きボックス効果 (確認ボックス、プロンプトボックス)

この記事の例では、参考のためにVueカスタムポップアップ効果の具体的なコードを共有しています。具体的...

Linux dirnameコマンドの具体的な使い方

01. コマンドの概要dirname - ファイル名からディレクトリ以外のサフィックスを削除しますd...

Navicat を使用してリモート Linux MySQL データベースに接続するときに発生する 10061 不明エラーの詳細な説明

Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...

MySQLデータベースのマスタースレーブ同期構成と読み取り書き込み分離

MySQL マスター スレーブ レプリケーションを使用する利点は次のとおりです。 1. 安定性を向上...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

2019 年に最も役立ち重要なオープンソース ツール トップ 10

Black Duck の 2017 年のオープンソース調査では、回答者の 77% がオープンソース...

Dockerデータボリューム操作の実装

データボリュームの使用開始先ほどのケースでは、ホストからコンテナにデータをコピーする必要がある場合、...

MySQL トランザクション同時実行問題の解決

開発中にこのような問題に遭遇しましたビデオ視聴記録が 100 に更新されると、視聴されたことを意味し...