docker-composer使用實踐

25minutes發表於2021-09-09

docker-composer使用實踐

Dockerfile 可以讓使用者管理一個單獨的應用容器;

Compose 則允許使用者在一個模板(YAML 格式)中定義一組相關聯的應用容器(被稱為一個 project,即專案)

例如一個 Web 服務容器再加上後端的資料庫服務容器等

檔案目錄

ghost
  - ghost
    - Dockfile    
  - nginx
      - nginx.conf
      - Dockfile
  - data
  - docker-compose.yml

docker-composer.yaml格式

ghost-app:
    build:ghost
    depends_on:
        - db
    ports:
        - "2368:2368"
nginx:
     build:nginx
     ports:
         - "80:80"
     depends_on:
         - ghost-app
db:
    image: "mysql:5.7.15"

配置 ghost Dockerfile

FROM ghost
COPY ./config.js /var/lib/ghost/config.js
EXPOSE 2368
CMD ["npm", "start", "--production"]

config.js

圖片描述

nginx Dockerfile

FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

nginx.conf

worker processes 4;
events {worker connections 1024;}
http {
    server {
        listen 80;
        location / {
            proxy pass 
        }
    }
}

ghost docker-compare.yaml

圖片描述

此處資料庫相關的配置要和config.js中的配置保持一致。【注:db.volumes的值應該為:$PWD/data:/var/lib/mysql】

ghost目錄:

#將所有容器啟動,並以daemon的方式後臺執行
docke-compose up -d
啟動容器後瀏覽器訪問localhost

顯示502 Bad Gateway錯誤

表示nginx已經啟動,但是nginx和ghost-app之間的連結是不對的。

檢查:

  1. docker-compose.yaml
  2. nginx.conf
1.將已經啟動的容器停掉
docker-compose stop
 
2.將已經停掉的容器刪除掉
docker-compose rm
 
3.修改了nginx.conf之後需要重新構建映象[第一次沒有映象,執行的時候回直接建立映象,現在已經映象了,所以需要重新構建]
docker-compose build 
 
4.使用映象啟動容器
docker-compose up -d
 
5.再次使用瀏覽器訪問就成功了,表示使用docker-compose拉的三個容器已經啟動,並且相互協作了
 
6.訪問localhost/ghost/setup/one 進行配置

localhost/ghost/editor/ 寫文章併發布,則可以在localhost看到釋出的文章。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2796647/,如需轉載,請註明出處,否則將追究法律責任。

相關文章