将 docker 卷导出到另一台机器

曼努埃尔

我目前正在尝试将 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

这会为 redmine 生成 postgres 数据库并创建 redmine 实例。

容器启动后,我进入 redmine 实例并配置应用程序,这意味着创建自定义字段、添加跟踪器、问题类型等。 需要进行大量设置,所以我不想每次都这样做部署这种容器。

我认为,因为所有设置数据都将进入卷,所以我可以导出这些卷,然后在新机器上导入它们。这样,当两个应用程序在新机器上启动时,它们将拥有之前设置中的所有必要信息。

这听起来很简单,但我在导出然后导入阶段苦苦挣扎。

形成我所看到的,我可以通过执行以下操作导出postgresql_data.tar文件:

docker export postgresql_data --output="postgres_data.tar"

但是如何.tar在新机器上导入新生成的文件呢?如果我没记错的话,通过将.tar文件导入postgresql_data新机器中调用的卷,模板中的数据将用于生成新容器。

有没有办法做到这一点?这是在两台主机之间复制设置的正确方法吗?

做类似的事情docker volume create postgresql_data然后将文件复制到卷目录是要走的路吗?

艾坦

我的建议是使用pg_dumppg_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

现在登录到容器并运行pg_dump "Your-db-name" > /dump-files/dumpNow 将此文件复制到任何新创建的容器并在新容器内运行:pg_restore -d "your-db-name" /dump-files/dump

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将存储导出到另一台计算机

如何从本地网络上的另一台机器访问Docker容器

如何从局域网上的另一台机器访问Docker容器

如何将Docker映像从一台主机复制到另一台主机?

同一个docker映像在一台机器上工作而在另一台机器上失败

如何将Docker卷从一台机器复制到另一台机器?

如何将Docker映像转移到另一台计算机?

将文件从Docker卷导出到另一个目录

将GitBucket迁移到另一台机器

docker-compose将mysql转移到另一台主机

保存Docker映像的当前状态并导出到另一台服务器

如何将本地git存储库移动到另一台机器上并使用它?

如何将传输配置传输到另一台机器?

如何将端口从一台机器转发到另一台机器?

如何将MobaXterm会话导出到另一台计算机?

将win7移至另一台机器:每步均可运行机器

如何将所有内容从Firefox导出到另一台PC

如果我将/ var从一台机器移到另一台机器,会出什么问题?

从内部网络中的另一台机器访问Docker容器

Qt创建者-依赖关系-如何将Qtlibrary获取到另一台机器

将一台linux机器挂载到另一台linux机器上

无法将局域网中的一台机器的远程git repo推送到另一台机器

如何将网站从一台机器上的 IIS 7.5 迁移到另一台机器上的 IIS 8.5?

从不在 docker 容器和另一台机器中的其他应用程序调用或与一台机器上的 docker 容器通信

如何将IIS配置复制到另一台机器

将文件从一台机器连续传输到另一台机器

在 ssh 进入另一台机器时将代码推送到 github

为什么在另一台机器上,如果我将每个文件都包含在我的 docker 映像中,我的 docker-compose 应用程序会抛出有关丢失文件的错误?

通过 ssh 将 git 存储库从我的机器克隆到另一台机器