我的数据库容器有问题,因此我想将一个现有的数据库(从主机)挂载到生成的容器中(使用docker-compose)。我将向您展示yaml文件的重要部分:
postgres:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
ports:
- "5432:5432"
volumes:
- ./postgres/data:/var/lib/postgresql/data
因此,当我构建并打开docker-compose时,退出了postgres容器:
如果我删除了持久卷,它会起作用!我也用mysql,mongodb->同样的问题进行了测试。
你能照亮我吗?
谢谢。
答案 0 :(得分:0)
我已解决此事,我想分享。实际上,为使容器在“ docker-compose up”命令后打开,我们应添加tty和命令参数,例如:
postgres:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
ports:
- "5432:5432"
volumes:
- ./postgres/data:/var/lib/postgresql/data
tty: true
command: /bin/bash
我希望这样会有用。
答案 1 :(得分:0)
最简单的方法是命名卷,这些卷也可以在多个服务中重用,并且可以使用docker命令行轻松地对其进行检索和检查...
docker volume create db-data
services
postgres:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
docker volume inspect db-data