如果我运行$ 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 --build的mysql容器无法启动抛出错误说
data:
container_name: flask_data
image: mysql:latest
volumes:
- ./data:/var/lib/mysql …Run Code Online (Sandbox Code Playgroud) 我想确保即使在Windows主机重启后,我的Postgres数据(使用基于Linux的映像)也能保留。
我尝试遵循以下步骤如何使用卷将数据持久化在dockerized postgres数据库中
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)
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) 我正在将Django cookiecutter与docker和docker-compose一起使用。
在生产中,我使用dj-static来提供媒体文件。
每当我使用“ docker-compose down”命令时,媒体卷中的所有内容都会被删除。我认为这是该命令的预期结果,但保留了“ postgreSQL”中的所有内容。
如何用“媒体”量来做到这一点?
我在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) 在 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) 我刚开始使用码头工人,但我不明白一些事情。我只是使用 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