Man*_*uel 4 docker docker-compose docker-volume
我目前正在尝试将 redmine 与 postgres 数据库一起使用,但在设置环境时遇到了一些问题。
假设我有以下撰写文件
db-redmine:
image: 'bitnami/postgresql:11'
user: root
container_name: 'orchestrator_redmine_pg'
environment:
- POSTGRESQL_USERNAME=${POSTGRES_USER}
- POSTGRESQL_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRESQL_DATABASE=${POSTGRES_DB}
- BITNAMI_DEBUG=true
volumes:
- 'postgresql_data:/bitnami/postgresql'
redmine:
image: 'bitnami/redmine:4'
container_name: 'orchestrator_redmine'
ports:
- '3000:3000'
environment:
- REDMINE_DB_POSTGRES=orchestrator_redmine_pg
- REDMINE_DB_USERNAME=${POSTGRES_USER}
- REDMINE_DB_PASSWORD=${POSTGRES_PASSWORD}
- REDMINE_DB_NAME=${POSTGRES_DB}
- REDMINE_USERNAME=${REDMINE_USERNAME}
- REDMINE_PASSWORD=${REDMINE_PASSWORD}
volumes:
- 'redmine_data:/bitnami'
depends_on:
- db-redmine
volumes:
postgresql_data:
driver: local
redmine_data:
driver: local
Run Code Online (Sandbox Code Playgroud)
这会生成 redmine 的 postgres 数据库并创建 redmine 实例。
容器启动后,我进入 redmine 实例并配置应用程序,这意味着创建自定义字段、添加跟踪器、问题类型等。需要进行大量设置,所以我不想每次都这样做部署这种容器。
我想,因为所有设置数据都会进入卷,所以我可以导出这些卷,然后在新机器上导入它们。这样,当两个应用程序在新计算机上启动时,它们将获得先前设置中的所有必要信息。
这听起来很简单,但我在导出然后导入阶段遇到了困难。
根据我所看到的,我可以通过执行以下操作导出postgresql_data到文件:.tar
docker export postgresql_data --output="postgres_data.tar"
Run Code Online (Sandbox Code Playgroud)
但是如何将新生成的.tar文件导入到新机器上呢?如果我没有记错的话,通过将.tar文件导入到新机器中调用的卷postgresql_data,模板中的数据将用于生成新容器。
有办法做到这一点吗?这是在两台主机之间复制设置的正确方法吗?
是否可以执行类似的操作docker volume create postgresql_data,然后将文件复制到卷目录?
我的建议是使用pg_dump和pg_restore工具,而不是复制卷。您可以将安装路径添加到 postgres 容器,例如:
db-redmine:
image: 'bitnami/postgresql:11'
user: root
container_name: 'orchestrator_redmine_pg'
environment:
- POSTGRESQL_USERNAME=${POSTGRES_USER}
- POSTGRESQL_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRESQL_DATABASE=${POSTGRES_DB}
- BITNAMI_DEBUG=true
volumes:
- 'postgresql_data:/bitnami/postgresql'
- /dump-files:/dump-files
Run Code Online (Sandbox Code Playgroud)
现在登录到容器并运行pg_dump "Your-db-name" > /dump-files/dump
现在将此文件复制到任何新创建的容器并在新容器内运行:pg_restore -d "your-db-name" /dump-files/dump
| 归档时间: |
|
| 查看次数: |
5935 次 |
| 最近记录: |