簡體   English   中英

為什么docker-compose失敗並且docker使用postgresql成功運行?

[英]Why docker-compose fail and docker run success with postgresql?

我正試圖用我的Mac啟動一個postgreSQL docker容器; 我使用OSX 10.11.16 El Capitan和Docker Toolbox 19.03.01。

如果我運行:

docker run --name my_postgres -v my_dbdata:/var/lib/postgresql/data -p 54320:5432 postgres:11

一切都完成了,我得到了:

my_postgres | 2019-09-17 04:51:48.908 UTC [41]日志:數據庫系統已准備好接受連接

但是如果我使用像這樣的.yml文件:

docker-compose.yml:

version: "3"
services:
  db:
    image: "postgres:11"
    container_name: "my_postgres"
    ports:
      - "54320:5432"
    volumes:
      - my_dbdata:/var/lib/postgresql/data
volumes:
  my_dbdata:

並運行

docker-compose up

我得到:

my_postgres | /usr/local/bin/docker-entrypoint.sh:忽略/docker-entrypoint-initdb.d/* my_postgres | my_postgres | 2019-09-17 04:51:49.009 UTC [41]日志:收到快速關閉請求my_postgres | 2019-09-17 04:51:49.011 UTC [41]日志:中止任何活動的交易my_postgres | ...等待服務器關閉。...2019-09-17 04:51:49.087 UTC [41]日志:后台工作程序“邏輯復制啟動器”(PID 48)退出,退出代碼為1 my_postgres | 2019-09-17 04:51:49.091 UTC [43]日志:關閉my_postgres | 2019-09-17 04:51:49.145 UTC [41]日志:數據庫系統已關閉

為什么與docker-compose相同的想法失敗?

非常感謝

如果您嘗試訪問主機上的現有卷,則需要使用以下external關鍵字指定該卷是在Compose文件external創建的:

version: "3.7"

services:
  db:
    image: postgres
    volumes:
      - data:/var/lib/postgresql/data

volumes:
  data:
    external: true

我從Compose文件參考https://docs.docker.com/compose/compose-file/中獲取了示例。

還要在兩次運行之間仔細檢查外部卷的內容,以查看是否被覆蓋。

還請仔細檢查您的引號,您無需在引號中添加圖片名稱,但我認為這不是問題。

嘗試以下對我有用的

version: '3.1'
services:
 db:
  image: postgres
  restart: always
  environment:
   POSTGRES_PASSWORD: mypassword
  volumes:
    - ./postgres-data:/var/lib/postgresql/data
  ports:
    - 5432:5432

然后在使用上一個命令后使用docker-compose up獲取日志使用docker-compose logs -f

在這兩種情況下,名為my_dbdata卷不同。 my_dbdata docker run創建一個名為my_dbdata的卷,而my_dbdata docker-compose默認情況下創建一個名為<dir>_my_dbdata

運行docker volume列出卷:

docker volume ls |grep my_dbdata 

我懷疑docker-compose創建的卷存在問題,因此postgres無法正確啟動。 my_postgres容器中的數據庫初始化僅完成一次。

嘗試刪除docker-compose創建的容器和卷:

docker rm my_postgres
docker volume rm <dir>_my_dbdata 

希望能幫助到你

暫無
暫無

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

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