首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在docker compose for postgres中使用卷?

如何在docker compose for postgres中使用卷?
EN

Stack Overflow用户
提问于 2017-02-08 15:43:34
回答 2查看 54.3K关注 0票数 38

这是我正在使用的image

我把它命名为posgres_test

如果我单独运行映像

代码语言:javascript
复制
docker run -i -t -v="test_volume:/var/lib/postgresql" -p 5432:5432 posgres_test

我可以使用以下命令访问它

代码语言:javascript
复制
psql -h 192.168.99.100 -p 5432 -U pguser -W pgdb

或者我可以使用我的golang应用程序访问它

代码语言:javascript
复制
// host is set to postgres
db, err := sql.Open("postgres", "postgres://pguser:pguser@postgres:5432/pgdb")
// table test_db is manually created.
rows, err := db.Query("SELECT name FROM test_db WHERE)

但是,如果我使用docker compose

docker-compose.yml

代码语言:javascript
复制
version: "2"
services:
  postgres:
    image: my_image/postgresql:9.3
    volumes:
      - test_volume:/var/lib/postgresql
    ports:
      - "5432:5432"
  web:
    image: my-golang-app4
    ports:
      - "8080:8080"
volumes:
  test_volume: {}

我得到了以下信息

代码语言:javascript
复制
pguser@pgdb ERROR:  relation "test_db" does not exist at character 15

我确信test_db存在于test_volume中,因为

代码语言:javascript
复制
docker run -i -t -v="test_volume:/var/lib/postgresql" -p 5432:5432 posgres_test
psql -h 192.168.99.100 -p 5432 -U pguser -W pgdb

\dt

将显示我创建的表

但我在docker compose中的应用程序似乎找不到它

有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2017-02-13 08:46:43

如果卷是外部的,并且在使用docker-compose之前已经存在,则应该将其声明为外部,否则docker compose将创建一个以项目名称为前缀的新卷。

代码语言:javascript
复制
volumes:
  test_volume:
   external: true

使用compose v3的external文档(主要类似于v2):https://docs.docker.com/compose/compose-file/compose-file-v3/#external

票数 5
EN

Stack Overflow用户

发布于 2017-02-08 21:08:42

我想对你来说应该是这样的。

代码语言:javascript
复制
docker run -itd -p 5432:5432 --name postgres_test -v /path/in/your/host :/path/in/your/container postgres_test psql -h 192.168.99.100 -p 5432 -U pguser -W pgdb

阅读Docker文档(https://docs.docker.com/engine/tutorials/dockervolumes/),观看教程(有一个Docker Youtube频道,里面有很棒的教程),并在发布新的教程之前阅读其他主题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42107364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档