【发布时间】:2018-07-28 15:52:45
【问题描述】:
Docker 新手,我正在尝试将 Postgres 和 pgadmin4 设置为在虚拟机内的 docker for Mac 上作为单一服务运行。一切正常,但一旦我停止服务,我的数据就消失了。我正在使用命名卷来保存数据,但可能做错了什么。它是什么?
这是我的设置:
# create my VM
docker-machine create dbvm
# set the right environment
eval $(docker-machine env dbvm)
这是我的docker-compose.yaml 文件:
version: '3'
services:
db:
image: postgres
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=my_db
volumes:
- pgdata:/pgdata
ports:
- 5432:5432
pgadmin:
image: fenglc/pgadmin4
ports:
- 5050:5050
volumes:
- pgadmindata:/pgadmindata
volumes:
pgdata:
pgadmindata:
使用docker-compose.yaml,我运行:
docker stack deploy -c docker-compose.yaml dbstack
我可以在这个设置上做任何事情,但是如果我运行docker stack rm dbstack 之后数据就消失了,但卷仍然存在。
$ docker volume ls
DRIVER VOLUME NAME
local 0c15b0b22c6b850e8768c14045da166253424dda4df8d2e13df75fd54d833412
local 22bab81d9d1de0e07de97363596b096f944752eba617ff574a0ab525239227f5
local 6da6e29fb98ad0f66d7da6a75dc76066ce014b26ea43567c55ed318fda707105
local dbstack_pgadmindata
local dbstack_pgdata
我错过了什么?
【问题讨论】:
标签: postgresql docker yaml docker-swarm