相关疑难解决方法(0)

Docker-撰写持久数据MySQL

如果我运行$ docker-compose down以下内容,我似乎无法保持MySQL数据持续存在.yml

version: '2'
services:
  # other services

  data:
    container_name: flask_data
    image: mysql:latest
    volumes:
      - /var/lib/mysql
    command: "true"

  mysql:
    container_name: flask_mysql
    restart: always
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
      MYSQL_USER: 'test'
      MYSQL_PASS: 'pass'
    volumes_from:
      - data
    ports:
      - "3306:3306"
Run Code Online (Sandbox Code Playgroud)

我的理解是在我的data容器中使用volumes: - /var/lib/mysqlmap将它映射到我的本地机器目录,其中mysql将数据存储到容器中,并且由于这种映射,即使容器被销毁,数据也应该保持不变.而mysql容器只是进入数据库的客户端接口,因为可以看到本地目录volumes_from: - data

尝试这个答案,它没有用.Docker-撰写持久性数据问题

编辑

改变了我.yml如下图所示,创建了目录./data,但现在当我运行docker-compose up --buildmysql容器无法启动抛出错误说

  data:
    container_name: flask_data
    image: mysql:latest
    volumes:
      - ./data:/var/lib/mysql …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

120
推荐指数
6
解决办法
13万
查看次数

将Postgres数据挂载到Windows主机目录

我想确保即使在Windows主机重启后,我的Postgres数据(使用基于Linux的映像)也能保留。

我尝试遵循以下步骤如何使用卷将数据持久化在dockerized postgres数据库中

docker-compose.yml

volumes:
  - ./postgres_data:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了错误

waiting for server to start....FATAL:  data directory "/var/lib/postgresql/data/pgdata" has wrong ownership
HINT:  The server must be started by the user that owns the data directory.
 stopped waiting
pg_ctl: could not start server
Run Code Online (Sandbox Code Playgroud)

然后,我尝试按照https://forums.docker.com/t/trying-to-get-postgres-to-work-on-persistent-windows-mount-two-issues/12456/5中的步骤进行操作

建议的方法是

docker volume create --name postgres_data --driver local
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

services:
  postgres:
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
    external: true
Run Code Online (Sandbox Code Playgroud)

但是,我对命令感到困惑docker volume create --name postgres_data --driver local。作为,它没有提到Windows主机的确切路径。

我试过了

C:\celery-hello-world>docker volume create postgres_data
postgres_data

C:\celery-hello-world>docker volume inspect …
Run Code Online (Sandbox Code Playgroud)

postgresql docker docker-for-windows

7
推荐指数
1
解决办法
1440
查看次数

带有docker-compose的Django应用将数据保留在媒体卷中

我正在将Django cookiecutter与docker和docker-compose一起使用。

在生产中,我使用dj-static来提供媒体文件。

每当我使用“ docker-compose down”命令时,媒体卷中的所有内容都会被删除。我认为这是该命令的预期结果,但保留了“ postgreSQL”中的所有内容。

如何用“媒体”量来做到这一点?

django docker docker-compose cookiecutter-django

6
推荐指数
1
解决办法
2015
查看次数

在Windows 10中执行时,Docker容器关闭并给出``数据目录具有错误的所有权''错误

我在Windows中安装了docker。我正在尝试安装应用程序。它给了我以下docker-compose.yml文件:

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" …
Run Code Online (Sandbox Code Playgroud)

postgresql docker docker-compose docker-for-windows

6
推荐指数
2
解决办法
4117
查看次数

Docker-compose v3 不持久化 postgres 数据库

在 docker-compose v3 容器关闭并重新启动后,我无法持久保存 postgres 数据。这似乎是一个常见问题,但经过大量搜索后,我一直无法找到有效的解决方案。

我的问题类似于这里:How to persist data in a dockerized postgres database using volumes,但解决方案不起作用 - 所以请不要关闭。我将通过以下所有步骤来重现问题。

这是我的 docker-compose 文件:

version: "3"  
services:  
  db:
    image: postgres:latest
    environment:
      POSTGRES_DB: zennify
      POSTGRES_USER: patientplatypus
      POSTGRES_PASSWORD: SUPERSECRETPASSWORD
    volumes:
      - pgdata:/var/lib/postgresql/data:rw
    ports:
      - 5432:5432
  app:
    build: .
    command: ["go", "run", "main.go"]
    ports:
      - 8081:8081
    depends_on:
      - db
    links:
      - db
volumes: 
  pgdata:
Run Code Online (Sandbox Code Playgroud)

这是我启动并写入数据库后的终端输出:

patientplatypus:~/Documents/zennify.me/backend:08:54:03$docker-compose up
Starting backend_db_1 ... done
Starting backend_app_1 ... done
Attaching to backend_db_1, backend_app_1
db_1   | 2018-08-19 13:54:53.661 …
Run Code Online (Sandbox Code Playgroud)

database postgresql persistence docker docker-compose

5
推荐指数
2
解决办法
4689
查看次数

Postgres Docker 持久化

我刚开始使用码头工人,但我不明白一些事情。我只是使用 docker-compose 来使用 PostgreSQL 的基本映像,但我不知道如何在杀死 docker 甚至删除我的本地映像后使数据库中的数据持久化。这有可能吗?

这是我实际的 docker-compose.yml:

version: "3"
services: 
  pintaecolorea_bd:
    image: postgres
    environment:
      POSTGRES_PASSWORD: <PASSWORD>
      POSTGRES_USER: postgres
    ports: 
      - "1234:5432"
    networks: 
      - "service"
networks:
  service:
Run Code Online (Sandbox Code Playgroud)

也许我应该使用卷?如何?

postgresql persistence configuration-files docker docker-compose

1
推荐指数
1
解决办法
3876
查看次数