[Docker 系列]docker 學習十,Compose 編寫規則及wp 實戰

小魔童哪吒發表於2021-12-11

yaml 規則

docker-compose.yaml 是 Compose 的核心,我們們一定要學會 yaml 編寫的規則

當然,我們們還是檢視官方文件,compose 部分

compose file

yaml 檔案的結構分為三層:

  • version

版本號

  • services

服務名

  • 其他配置,如網路,掛載等公共的東西
version:''   # 版本號
services:
    伺服器1 web:
        當前服務的配置,這個部分就可以和DockerFile 寫的差不多了
        build
        depends_on
        ...
    服務2 redis:
    ...
    服務n mongodb:

network:

volume:

...
其他配置

上面說的到版本號在哪裡找呢?

進入 dockerhub 網頁,docs.docker.com/compose/compose-fi...

官網上的這些都是可以使用的版本,如官網給出的例子:

version: "3.9"
services:

  redis:
    image: redis:alpine
    ports:
      - "6379"
    networks:
      - frontend
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

      ...

networks:
  frontend:
  backend:

volumes:
  db-data:

services 和 其他命令都可以寫什麼呢?

services 下面可以寫的命令非常的多,文件上也講的非常的詳細

如上命令還是非常的多,我們一下子肯定也是記不住的,需要我們慢慢去熟悉,用的多了,寫的多了,看得多了,知識慢慢的也根深蒂固了

我們們學習的方法有:

  • 多看官方文件,看官網的例子
  • 看開源專案,看看別人的 docker-compose.yaml 是如何編寫的

實戰-搭建 wp 部落格

我們們來使用 docker-compose.yaml 的方式來搭建我們的個人部落格,感受一下一鍵部署的魅力

建立工作目錄

mkdir my_wordpress
cd my_wordpress

編寫我們的 docker-compose.yaml 檔案

version: "3.9"

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    ports:
      - "8888:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress_data: {}

解釋一下 docker-compose.yaml 檔案的含義:

  • 安裝了 2 個服務,一個是 db mysql,一個是 wordpress 服務
  • 資料庫服務
    • mysql 使用的映象是 mysql:5.7
    • 掛載是掛到 /var/lib/mysql,預設使用的是具名掛載,所有會掛載到宿主機的這個路徑 /var/lib/docker/volumes/my_wordpress_db_data/_data
    • 設定 mysql 相關的環境變數
  • wordpress 服務
    • 依賴資料庫服務
    • 用的映象是 wordpress:latest
    • 掛載卷是 /var/www/html,會掛載到我們宿主記得這個目錄 /var/lib/docker/volumes/my_wordpress_wordpress_data/_data
    • 設定埠,將宿主記得 8888 埠對映到容器的 80 埠
    • 設定 wordpress 相關的環境變數

docker-compose up 一鍵部署服務並啟動

在工作目錄執行如下指令一鍵部署服務

#docker-compose up

我們也可以在讓服務在後臺啟動

#docker-compose up -d

啟動之後我們可以看到程式先去建立網路,建立對應的掛載卷

開始建立並啟動對應的容器

  • my_wordpress_db_1
  • my_wordpress_wordpress_1

檢視一下部落格搭建的效果

我們可以訪問部落格地址:伺服器的IP:8888

nice,使用docker-compose.yaml 搭建個人的 wordpress 部落格成功!!!

wordpress 的介面是這個樣子的,裡面的功能很多,直接就在頁面上定製化我們自己的頁面,非常方便,xdm 可以嘗試一波,不虧

參考資料

歡迎點贊,關注,收藏

朋友們,你的支援和鼓勵,是我堅持分享,提高質量的動力

好了,本次就到這裡

技術是開放的,我們的心態,更應是開放的。擁抱變化,向陽而生,努力向前行。

我是小魔童哪吒,歡迎點贊關注收藏,下次見~

本作品採用《CC 協議》,轉載必須註明作者和本文連結
關注微信公眾號:小魔童哪吒

相關文章