相关疑难解决方法(0)

如何处理Docker中的持久存储(例如数据库)

人们如何处理Docker容器的持久存储?

我目前正在使用这种方法:构建映像,例如PostgreSQL,然后启动容器

docker run --volumes-from c0dbc34fd631 -d app_name/postgres
Run Code Online (Sandbox Code Playgroud)

恕我直言,有缺点,我不能(偶然)删除容器"c0dbc34fd631".

另一个想法是将主机卷"-v"安装到容器中,但是,用户ID的容器内不一定匹配用户ID从主机,然后权限可能会混乱.

注:与其--volumes-from 'cryptic_id'你也可以使用--volumes-from my-data-container这里my-data-container是你分配到纯数据容器,如姓名docker run --name my-data-container ...(见接受的答案)

docker docker-container

969
推荐指数
10
解决办法
28万
查看次数

在微服务架构中使用共享数据库docker容器

docker我标记的问题计数中假设StackOverflow是正确的地方(而不是例如DevOps),如果没有,请指出我正确的地方或相应地移动这个问题.

我的方案如下:

  • 正在根据SOA /微服务方法开发包含前端(Web GUI)和后端(REST服务)的多个应用程序,每个应用程序都有自己的git存储库
  • 某些应用程序需要共享的附加资源,如前端需要HTTP服务器,而多个后端应用程序需要数据库服务器(具有持久存储)
  • 重点主要是离线移动开发(在路上),因此应该可以快速设置所需的服务/应用程序,并且资源开销的数量应该是最小的.但当然整个事情将在某个时候部署/发布,所以如果两者都可以管理,我不想阻止它
  • 开发是在Windows和Linux主机上完成的
  • 出于开发目的,需要从主机访问所有服务

我想要实现的是docker-compose.yaml在我调用的应用程序存储库中有一个文件,docker-compose up然后启动所有必需的容器(如果尚未运行),例如,当我docker-compose up在后端应用程序存储库中调用时启动数据库容器.

我的方法是创建一个新的git存储库,它定义所有共享的docker镜像/容器,并且docker-compose.yaml只有docker-compose build在发生变化时才能运行所有开发人员(可能在将来使用git commit hook自动化).中央docker-compose.yaml看起来像这样

version: "3"
services:

  postgres:
    build: ./images/postgres
    image: MY-postgres
    container_name: MY-postgres-server
    ports:
      - "5432:5432"

  httpd:
    build: ./images/httpd
    image: MY-httpd
    container_name: MY-httpd-server
    ports:
      - "80:80"
Run Code Online (Sandbox Code Playgroud)

Dockerfile和描述每个图像内置如何在自己的子文件夹,我认为不相关的问题,基本上是默认的图像高山+阿帕奇/ Postgres的.

所以问题是:docker-compose.yaml应用程序git存储库中的内容如何引用上述中心定义的服务/容器docker-compose.yaml.

现在,因为这 没有 新的 问题 情景,我做了一些研究和诚实的各种方法,并提出了解决方案令人困惑,这一次的各种版本中不提倡使用的和兼容性,功能等.

linux windows development-environment docker docker-compose

7
推荐指数
0
解决办法
840
查看次数