首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker容器关闭,在windows 10中执行“数据目录有错误的所有权”错误

Docker容器关闭,在windows 10中执行“数据目录有错误的所有权”错误
EN

Stack Overflow用户
提问于 2018-03-07 09:48:48
回答 6查看 23K关注 0票数 30

我在Windows上安装了我的码头。我正在尝试安装应用程序。它给了我下面的docker-compose.yml文件:

代码语言:javascript
运行
复制
version: '2'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile-nginx
    ports:
    - "8085:80"
    networks:
      - attendizenet
    volumes:
      - .:/usr/share/nginx/html/attendize
    depends_on:
      - php
  php:
    build:
      context: .
      dockerfile: Dockerfile-php
    depends_on:
      - db
      - maildev
      - redis
    volumes:
      - .:/usr/share/nginx/html/attendize
    networks: 
      - attendizenet
  php-worker:
    build:
      context: .
      dockerfile: Dockerfile-php
    depends_on:
      - db
      - maildev
      - redis
    volumes:
      - .:/usr/share/nginx/html/attendize
    command: php artisan queue:work --daemon
    networks:
      - attendizenet
  db:
    image: postgres
    environment:
      - POSTGRES_USER=attendize
      - POSTGRES_PASSWORD=attendize
      - POSTGRES_DB=attendize
    ports:
      - "5433:5432"
    volumes:
      - ./docker/pgdata:/var/lib/postgresql/data
    networks:
    - attendizenet
  maildev:
    image: djfarrelly/maildev
    ports:
      - "1080:80"
    networks:
      - attendizenet
  redis:
    image: redis
    networks:
      - attendizenet

networks:
  attendizenet:
    driver: bridge

所有安装都进行得很顺利,但是PostgreSQL容器在启动一段时间后就停止了,出现了以下错误。

代码语言:javascript
运行
复制
2018-03-07 08:24:47.927 UTC [1] FATAL:  data directory "/var/lib/postgresql/data" has wrong ownership
2018-03-07 08:24:47.927 UTC [1] HINT:  The server must be started by the user that owns the data directory

来自Docker的简单PostgreSQL容器工作平稳,但是当我们试图将卷附加到容器时会发生错误。

我是新来码头的,所以请错误地忽略术语的使用。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-03-11 20:52:39

这是Windows [1][2][3.][4.].上Postgres Docker映像的一个文档问题目前,似乎没有一种方法可以正确地将Windows目录挂载为卷。您可以使用持久性Docker卷,例如:

代码语言:javascript
运行
复制
  db:
    image: postgres
    environment:
      - POSTGRES_USER=attendize
      - POSTGRES_PASSWORD=attendize
      - POSTGRES_DB=attendize
    ports:
      - "5433:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
    - attendizenet

volumes:
  pgdata:

其他不起作用的事情:

代码语言:javascript
运行
复制
    environment:
      - PGDATA=/var/lib/postgresql/data/mnt
    volumes:
      - ./pgdata:/var/lib/postgresql/data
  • 使用绑定安装(对接者-组合3.2)
代码语言:javascript
运行
复制
    volumes:
      - type: bind
        source: ./pgdata
        target: /var/lib/postgresql/data
  • 以POSTGRES_USER=root的形式运行

更多资料:

GitHub

码头论坛

票数 41
EN

Stack Overflow用户

发布于 2020-05-19 05:52:15

请参阅来自这里的reinierkors答复。答案如下所示,为了方便读者,请按这里的链接复制,并为我工作。

我通过映射本地卷( one Postgres需要下的一个目录)来解决这个问题:

代码语言:javascript
运行
复制
version: '3'
services:
  postgres:
    image: postgres
    restart: on-failure
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
      - PGDATA=/var/lib/postgresql/data/pgdata
      - POSTGRES_DB=postgres
    volumes:
      - ./postgres_data:/var/lib/postgresql
    ports:
      - 5432:5432
票数 13
EN

Stack Overflow用户

发布于 2021-07-22 07:19:02

当我把我的码头工人从WSL 2降级到WSL 1以及托马斯·泰勒的相关内容后,我也遇到了同样的问题,我用命名卷解决了这个问题。

代码语言:javascript
运行
复制
version: '3.8'

services:
  postgres:
    image: timescale/timescaledb:latest-pg12
    ...
    volumes:
      - pgdata:/var/lib/postgresql/data
    ...


volumes:
  pgdata:
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49148754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档