沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
github
bilibili
mastodon
zhihu
douban

「折騰」Docker 化安裝 Z-BlogPHP

本文原始鏈接如下:

「折騰」Docker 化安裝 Z-BlogPHP

https://www.wdssmq.com/post/20120817544.html

使用 Docker Compose 部署「推薦」#

wdssmq/zbp-docker-compose: 使用 Docker Compose 快捷部署 Z-BlogPHP + MySQL;:

# 安裝 Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` \
 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

生成最新版 Docker Compose 安裝命令:https://demo.wdssmq.com/tools/GenShell/

創建一個網絡用於容器互通#

docker network create -d bridge net_web

後續創建的容器全部連接至該網絡中,更多說明請見「這個鏈接」;

Docker 安裝 MysQL + PHPMyAdmin#

Docker 安裝 Mysql + Phpmyadmin | 愛吃東西的 RD

網絡設置仍然不是很懂,只能說這樣確實成功了;

下邊命令最初是在 CentOS 下測試,Ubuntu 可能要加 sudo

# cd /root
# MYSQL_DIR=/root/MySQL
# if [ ! -d $MYSQL_DIR ]; then
#   mkdir -p $MYSQL_DIR
# fi

# 刪除已創建的容器
docker rm --force MySQL
docker run --name MySQL \
  --net=net_web \
  -e MYSQL_ROOT_HOST=172.%.%.% \
  -e MYSQL_ROOT_PASSWORD=shujukumima \
  --restart on-failure \
  -d mysql/mysql-server:5.7

# PHPMyAdmin,映射端口為 9100
docker rm --force PHPMyAdmin
docker run --name PHPMyAdmin \
  --network=net_web \
  -e PMA_HOST=MySQL \
  -e UPLOAD_LIMIT=4096K \
  -p 9100:80 \
  -d phpmyadmin/phpmyadmin

# 平時可以停用,需要的時候再開啟
docker stop PHPMyAdmin
docker start PHPMyAdmin

# MySQL 安裝驗證
docker exec -it MySQL mysql -u root -p

# 進入容器內登錄測試
# docker exec -it MySQL /bin/bash
# mysql -u root -p

# 命令行備份
if [ ! -d ~/backup ]; then
  mkdir ~/backup
fi
# 指定要備份的數據庫
DB_NAME=zblog_docker
docker exec -it MySQL mysqldump \
  -u root -pshujukumima \
  $DB_NAME > ~/backup/db_$DB_NAME-$(date +%Y-%m-%d-%H-%M).sql
# ↑ 重要:-p 參數後要不帶空格直接連著密碼

# 導入數據庫
DB_SQL=~/backup/db_www.wdssmq.com.sql
DB_NAME=zblog_docker2
docker exec -i MySQL mysql \
  -u root -pshujukumima \
  -D $DB_NAME < $DB_SQL

# 下邊命令僅作參考
use mysql;
select host,user from user;
update user set host='%' where user='root';

====================

Docker 安裝 Z-BlogPHP#

ZBP_DIR=~/wwwroot/zbp_folder
ZBP_PORT=8082
if [ ! -d $ZBP_DIR ]; then
  mkdir -p $ZBP_DIR
fi
# 刪除創建的容器
docker rm --force zbp
docker run --name zbp \
  --net=net_web \
  -v $ZBP_DIR:/app \
  -e ZC_DB_HOST=MySQL \
  -e ZC_DB_NAME=zblog_docker \
  -e ZC_DB_USER=root \
  -e ZC_DB_PWDD=shujukumima \
  -e ZC_BLOG_USER=admin \
  -e ZC_BLOG_PWDD=shezhimima \
  -p $ZBP_PORT:80 \
  --restart on-failure \
  -d wdssmq/zblogphp

# 查看日誌
docker logs zbp

# 進入容器內部
docker exec -it zbp /bin/bash

====================

構建 ZBP-Docker 鏡像並發布到 docker hub#

zblogcn/zblogphp-tencent-openapp-docker:

cd ~/git
# 克隆項目並進入目錄
git clone [email protected]:zblogcn/zblogphp-tencent-openapp-docker.git zbp-docker
cd zbp-docker

# Build
docker build -t wdssmq/zblogphp:22.05 .
# —— 指定 Tag
docker build -t wdssmq/zblogphp .
# —— 不指定 Tag,將默認為 :latest

# 查看鏡像
docker image ls

# 登錄 docker hub
# https://hub.docker.com/
# https://hub.docker.com/settings/security
# 推薦用 Access Tokens 作為下邊登錄的密碼
docker login -u <用戶> -p <>

# 發布鏡像
docker push wdssmq/zblogphp:22.05
docker push wdssmq/zblogphp:latest

=========================

其他#

各種錯誤提示:

· Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.

解決:

執行ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

· Permission denied (publickey).

解決:

使用形如[email protected]:zblogcn/zblogphp-tencent-openapp-docker.git的地址進行連接但是沒有配置「SSH Key」時會出現該提示;

見下方ssh-keygen生成命令,然後將生成的*.pub內容填加至:https://github.com/settings/ssh/new

· ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type

解決:

RSA 算法已被認為不再安全(主要取決於密鑰長度);

更直接的方法是更換算法為 ecdsa 或 ed25519,兩者之間後者更安全,當然如果你的環境較舊,出現了unknown key type ed25519的提示,那麼就選前者;

ssh-keygen -t ed25519
# unknown key type ed25519
ssh-keygen -t ecdsa

・Docker 網絡相關

更詳細的說明見「這個鏈接」;

docker network ls

docker network inspect bridge
docker network inspect host

docker network create -d bridge net_web
docker network inspect net_web
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。