簡體   English   中英

docker-compose用於純數據容器和web服務器,postgresql

[英]docker-compose for a pure data container and web server, postgresql

我正在使用docker-compose.yml文件為我的django nginx postgresql和一個純數據容器構建3個docker容器。

這是我的docker-compose.yml

data:
  # pure data container
  image: busybox
  volumes:
    - /etc/postgresql
    - /var/log/postgresql:/var/log/postgresql
    - /var/lib/postgresql
    - /var/log/nginx:/var/log/nginx
    - /var/log/supervisor:/var/log/supervisor

db:
  image: postgres
  volumes_from:
    - data

web:
  build: .
  ports:
    - "80:80"
    - "443:443"
  links:
    - db
  volumes_from:
    - data


$docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                     PORTS                                      NAMES
cc26b3a72a02        myweb_web:latest    "supervisord -n"       6 minutes ago       Up 6 minutes               0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   myweb_web_1         
14763a9f68d1        postgres:latest     "/docker-entrypoint.   6 minutes ago       Up 6 minutes               5432/tcp                                   myweb_db_1          
37598892038b        busybox:latest      "/bin/sh"              6 minutes ago       Exited (0) 6 minutes ago                                              myweb_data_1

我擔心如何備份和恢復存儲在純數據容器(myweb_data_1)中的postgresql數據。 我使用“docker-compose build && docker-compose up”命令重建docker鏡像並重新啟動容器,如果我更新代碼,但不確定這是否正確或最佳方式。

我沒有postgresql的經驗,但從docker的角度來看,這種方法看起來非常好。 您的數據將位於數據容器中。 它不會受docker-compose build && docker-compose up Raman Gupta在他的文章中對這個主題進行了很好的介紹。

在那里他還強調你需要適用於僅數據容器的正確思維方式。 對您而言,這意味着您可以擁有“備份容器” 使用postgres圖像並從中運行一個新容器,該容器使用--volumes-from myweb_data_1 現在,在容器中,您可以使用postgresql中的適當工具並訪問數據容器中的數據庫。

同樣,postgresql可能會有所不同,但對於mysql來說,這就是方法,它完全正常,並且是我理解的最佳實踐。 順便說一句,mysql是一個服務器。 因此,您將啟動一個新容器並將其鏈接( --link )與myweb_db_1容器相關聯。 不確定postgresql的行為方式。

你可以試試這個:

docker run --volumes-from myweb_data_1 -v $(pwd):/ backup ubuntu tar cvf /backup/backup.tar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM