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 子要素の配置の実装

推薦する

WeChatアプレットがSMS認証コード送信のカウントダウンを実装

この記事では、WeChatアプレットがSMS認証コードのカウントダウンを送信するための具体的なコード...

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

MySQLトランザクションの特徴と分離レベルについてお話ししましょう

インターネットにはすでにこの種の記事が溢れていますが、私がこれをまだ書いている理由は単純です。それは...

kindとDockerを使用してローカルKubernetes環境を起動する

導入Kubernetes を使い始めるのに丸一日を費やしたことはありませんか?最近登場したいくつかの...

Linuxにgitをインストールする方法

1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...

JavaScriptの再帰の詳細

目次1. 再帰とは何ですか? 2. 再帰を使って数学の問題を解く1. 1 * 2 * 3 * 4 …...

Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...

CentOS 7 で Python を 3.6.6 にアップグレードした後に発生する yum エラー問題の解決方法の概要

最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...

コード分​​析を実現するためのFastDFSとNginxの統合

FastDFSとNginxの統合:トラッカーは、負荷分散と高可用性のために Nginx と組み合わせ...

Linux で Apache を使用してファイル サーバーを構築する手順

1. ファイルサーバーについてプロジェクトでは、公開ソフトウェアやデータをプロジェクト チーム メン...

Zabbix で複数の JVM プロセスを監視する方法

1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...

完璧なアロエベラジェルを選ぶには?完璧なアロエベラジェルの本物と偽物の見分け方

最新のパーフェクト アロエ ベラ ジェルのパッケージ ボックスには、赤いフォントで完璧な英語の文字が...

EXPLAIN コマンドの詳細な説明と MySQL での使用方法

1. シナリオの説明: 同僚から MySQL で explain を使用する方法を教わったので、返さ...

Spark SQL の 4 つの一般的なデータ ソースの詳細な説明

汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...