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データベースについて学びましょう

目次1. データベースとは何ですか? 2. データベースの分類は? 3. データベースとデータ構造の...

JavaでTomcatサーバーを起動/停止する方法

1. プロジェクト構造 2.Tomcat.javaを呼び出す パッケージ com.calltomca...

パスワードログインなしのLinux構成スタンドアロンおよびフルディストリビューションの詳細なチュートリアル

目次1: 単一マシンのパスワードフリーログイン構成1. 仮想マシンのホスト名を設定する2. 仮想マシ...

CentOS 7.x dockerはoverlay2ストレージ方式を使用する

/etc/docker/daemon.json を編集し、以下を追加します。 { "ストレ...

JS ES6 非同期ソリューション

目次最初にコールバック関数を使用するes6 非同期処理モデルこの非同期モデルに合わせたAPI: pr...

Linux yum パッケージ管理方法

導入yum (Yellow dog Updater, Modified) は、Fedora、RedH...

nginxプロセスロックの実装の詳細な説明

目次1. nginxプロセスロックの役割2. エントリーレベルのロックの使用3. nginxプロセス...

Linux で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?

【問題分析】 chown コマンドを使用できます。ここで ch は change (変更) を表し...

JS で配列をループする 4 つの方法のまとめ

この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

JavaScript でタブバーの切り替え効果を実装する

フロントエンド開発者が必ず知っておくべきケースとして、タブバーの切り替え効果があります。タブバー自体...

MySQL Innodb ストレージ構造と Null 値の保存の詳細な説明

背景:テーブルスペース: すべての INNODB データはテーブルスペース (共有テーブルスペース)...

Ubuntu 上の MySQL における中国語文字化け問題の解決方法

問題を見つける最近 Django を学習しているのですが、MySQL データと組み合わせてデータを挿...

Centos7 で yum を使用して Mysql5.7.19 をインストールする詳細な手順

Centos7 の yum ソースには、mysql の代わりに mariaDB が使用されているため...