docker-compose編排技術搭建solo個人博客

1. 安裝docker

  • CentOS
yum install docker
yum install docker-compose

2. 獲取證書

3. 修改配置文件

3.1 配置Nginx

  • 編輯nginx/conf/nginx.conf文件
  • 將所有dduan.site替換爲您自己的站點
  • 然後修改下述兩塊證書文件名稱(路徑不用改,直接改證書名即可)
  ssl_certificate /etc/nginx/conf.d/dduan.site/1_dduan.site_bundle.crt;
  ssl_certificate_key /etc/nginx/conf.d/dduan.site/2_dduan.site.key;

3.2 配置docker-compose

  • 編輯docker-compose.yml文件,按照 # 後面的備註進行修改
version: "2"

services:
  mysql:
    container_name: mysql
    image: mysql:5.7
    restart: always
    volumes:
      # MySQL數據存放地址
      - ./mysql/data:/var/lib/mysql
    ports:
      # 6603代表宿主機端口,3306代編容器的端口
      - "6603:3306"
    environment:
      # mysql的root賬號密碼
      MYSQL_ROOT_PASSWORD: "adminadmin"
    # 在這裏配置mysql的全局參數  
    command: --max_allowed_packet=32505856
  solo:
    # 直接使用最新版本的solo鏡像
    container_name: solo
    image: b3log/solo:latest
    restart: always
    ports:
      # https部署的方式不需要修改此處
      - "8080:8080"
    environment:
      RUNTIME_DB: "MYSQL"
      JDBC_USERNAME: "root"
      JDBC_PASSWORD: "adminadmin"
      JDBC_DRIVER: "com.mysql.cj.jdbc.Driver"
      # 此處,因爲solo跟mysql同爲docker容器,所以可以直接使用容器名 + 容器端口來訪問
      JDBC_URL: "jdbc:mysql://mysql:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"
    # 按照solo官方要求,在solo啓動之初,配置solo的域名、端口,如果是本地測試的話,將host改爲localhost即可
    command: --listen_port=8080 --server_port= --server_scheme=https --server_host=www.dduan.site
  nginx:
    container_name: nginx
    image: nginx:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      # 映射nginx目錄到docker容器中
      - "./nginx/conf:/etc/nginx/conf.d"
      # 映射服務器的證書目錄到docker容器中
      - "/docker/solo/https/cert/dduan.site:/etc/nginx/conf.d/dduan.site"
      # 映射www目錄到docker容器中,後期您可以在這裏部署自己的靜態站點或者php站點
      - "./nginx/www/:/var/www/"

4. 啓動

  • 啓動命令
docker-compose up -d
  • 停止命令
docker-compose down
  • 查看solo日誌,查看Nginx日誌,只需要solo改爲Nginx
docker logs -t -f --tail 100 solo

5. 建數據庫

  • 進入MySQL容器
docker exec -it mysql bash
  • 登錄MySQL
mysql -uroot -pXXX
  • 創建solo數據庫
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • 退出數據庫和容器,執行 exit 命令

7. 效果展示

https://www.dduan.site/

8. 注意事項

  • docker-compose 只是一個 docker 容器的編排工具,本質還是 docker 容器在運行
  • 執行docker-compose 命令需要在docker-compose.yml所在目錄執行
  • 每一次命令 docker-compose 啓動的時候,都會自動拉取最新 solo 的鏡像,所以自動更新非常簡單
  • 數據備份問題,docker 容器死亡的時候,容器內數據會自動清除,除非我們使用 volumes 構建映射關係,這裏我只將最重要的 mysql 數據庫文件映射在 mysql/data 目錄下

9. 完整配置文件

GitHub:https://github.com/dadeity/solo-docker-compose.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章