Docker實踐:使用Docker部署blog輕量級博客系統
- 一、blog系統介紹
- 1.1 blog介紹
- 1.2 個人博客系統介紹
- 1.3 個人博客使用場景
- 二、本地環境介紹
- 2.1 本地環境規劃
- 2.2 本次實踐介紹
- 三、本地環境檢查
- 3.1 檢查Docker服務狀態
- 3.2 檢查Docker版本
- 3.3 檢查docker compose 版本
- 四、下載blog鏡像
- 五、部署blog個人博客系統
- 5.1 使用docker-cli部署
- 5.2 下載blog源碼
- 5.3 修改docker-compose.yml文件
- 5.3 創建blog容器
- 5.4 檢查blog容器狀態
- 六、訪問blog個人博客系統
- 6.1 訪問blog首頁
- 6.2 登錄blog
- 6.3 發布博客內容
- 6.4 瀏覽博客內容
- 七、總結
一、blog系統介紹
1.1 blog介紹
- blog系統簡介
這是一個簡單的自托管、輕量級、單用戶 PHP 博客,您可以在其中創建自己的類似 Facebook 的提要。向其他人授予讀取權限,并且您可以共享包含照片(包括突出顯示的代碼或鏈接)的富文本。
1.2 個人博客系統介紹
開源的個人博客系統是一種允許用戶創建、管理和發布自己的博客的平臺。它是基于開源軟件的,意味著任何用戶可以自由地訪問、修改和分發系統的源代碼。例如比較有名的wordpress/Ghost/Hexo/halo/Hugo等博客系統,這些開源個人博客系統都有活躍的社區支持和更新,可以根據自己的需求選擇合適的系統,并根據需要進行定制和擴展。
1.3 個人博客使用場景
開源的個人博客系統適用于以下場景:
-
個人博客:適合個人或小團隊創建和管理個人博客網站,記錄個人的思考、經驗分享、技術總結等內容。
-
學術研究:適用于學者、研究員或學生創建學術博客,分享研究成果、學術觀點和學術活動等內容。
-
技術博客:適合開發者、程序員或技術愛好者創建技術博客,分享技術經驗、開發教程、工具推薦等內容。
-
文學創作:適用于作家、詩人或文藝愛好者創建文學博客,發布作品、分享創作心得和文學評論等內容。
-
新聞媒體:適合新聞機構、記者或新聞愛好者創建新聞博客,發布新聞報道、時事評論和專題報道等內容。
-
教育培訓:適用于教師、教育機構或在線教育平臺創建教育博客,發布教學資源、教育理念和教學經驗分享等內容。
-
社區互動:適合創建社區博客網站,鼓勵用戶參與互動、發布帖子、評論和分享內容。
二、本地環境介紹
2.1 本地環境規劃
本次實踐為個人測試環境,操作系統版本為centos7.6。
hostname | IP地址 | 操作系統版本 | Docker版本 |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 |
2.2 本次實踐介紹
1.本次實踐部署環境為個人測試環境,生產環境請謹慎;
2.在Docker環境下部署blog個人博客系統。
三、本地環境檢查
3.1 檢查Docker服務狀態
檢查Docker服務是否正常運行,確保Docker正常運行。
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2023-12-08 19:10:36 CST; 21h agoDocs: https://docs.docker.comMain PID: 11729 (dockerd)Tasks: 22Memory: 186.1MCGroup: /system.slice/docker.service
3.2 檢查Docker版本
檢查Docker版本
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0
四、下載blog鏡像
從docker hub拉取blog鏡像
[root@jeven blog]# docker pull m1k1o/blog:latest
latest: Pulling from m1k1o/blog
7d63c13d9b9b: Pull complete
24b15dfd3cfa: Pull complete
64625c2e355f: Pull complete
275a8dd8f358: Retrying in 1 second
eb1c8ccc797a: Download complete
0aaf98f0c33a: Download complete
e6e7c544c3e3: Retrying in 2 seconds
4ae870a5fb80: Retrying in 1 second
98833c4f4a49: Waiting
f1a6af6bf10a: Waiting
a56ec4dacea3: Waiting
ab49679021a9: Waiting
62d224267322: Waiting
72321144b430: Waiting
25bec77f4422: Waiting
latest: Pulling from m1k1o/blog
Digest: sha256:b3c48fed76e80de423e5a5a14a9b5070f3a4e8ae93be6b45991d3249fc74b681
Status: Image is up to date for m1k1o/blog:latest
docker.io/m1k1o/blog:latest
五、部署blog個人博客系統
5.1 使用docker-cli部署
使用docker-cli部署,執行以下命令即可。直接使用以下命令創建blog容器時,默認使用的數據庫為SQLite。
docker run -d \-p 80:80 \-e "TZ=Europe/Vienna" \-e "BLOG_TITLE=Blog" \-e "BLOG_NAME=Max Musermann" \-e "BLOG_NICK=username" \-e "BLOG_PASS=password" \-e "BLOG_LANG=en" \-v $PWD/data:/var/www/html/data \m1k1o/blog:latest
5.2 下載blog源碼
在github下載blog源碼包
cd /data
[root@jeven data]# git clone https://github.com/m1k1o/blog.git
Cloning into 'blog'...
remote: Enumerating objects: 1492, done.
remote: Counting objects: 100% (190/190), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 1492 (delta 163), reused 160 (delta 150), pack-reused 1302
Receiving objects: 100% (1492/1492), 4.14 MiB | 2.90 MiB/s, done.
Resolving deltas: 100% (923/923), done.
設置目錄權限
chmod -R 777 /data/blog/
5.3 修改docker-compose.yml文件
進入blog源碼目錄
[root@jeven blog]# ls
ajax.php common.php data Dockerfile index.php README.md static
app config.ini docker-compose.yml favicon.ico LICENSE robots.txt
修改docker-compose.yml文件,內容如下:
version: "3"services:blog:image: m1k1o/blog:latestrestart: unless-stoppedenvironment:TZ: Asia/ShanghaiBLOG_TITLE: BlogBLOG_NAME: Max MusermannBLOG_NICK: blogBLOG_PASS: blogBLOG_LANG: enports:- 8012:80volumes:- ./data:/var/www/html/data
5.3 創建blog容器
使用docker compose 快速創建blog容器
[root@jeven blog]# docker compose up -d
[+] Running 1/1? Container blog-blog-1 Started 0.3s
5.4 檢查blog容器狀態
檢查blog容器運行狀態,確保blog容器正常啟動。
[root@jeven blog]# docker compose ps
NAME COMMAND SERVICE STATUS PORTS
blog-blog-1 "docker-php-entrypoi…" blog running 0.0.0.0:8012->80/tcp, :::8012->80/tcp
六、訪問blog個人博客系統
6.1 訪問blog首頁
訪問地址:http://192.168.3.166:8012,將IP替換為自己服務器IP地址,進入blog首頁。
6.2 登錄blog
我們在docker-compose.yml文件中設置的登錄用戶名和密碼為blog/blog
6.3 發布博客內容
在編輯框內編輯博客內容,點擊公開,保存發布。
6.4 瀏覽博客內容
在其他瀏覽器訪問http://192.168.3.166:8012,可以看到博客內容。
七、總結
Blog輕量級博客系統是一款開源的博客系統,它簡單易用、系統資源占用少。它有簡潔漂亮的界面,可以方便地分享文章、圖片等內容。如果對Blog感興趣,可以嘗試部署體驗一下。