如何重新创建Docker容器?

时间:2017-04-20 17:24:01

标签: postgresql docker

我是docker的新手,我正在使用docker compose。由于某种原因,我的postgres容器现在已经坏了

我正在尝试此命令docker-compose up --no-deps --build db

它正在给我这个:

MacBook-Pro-de-Javier:goxo.api javier$ docker-compose up --no-deps --build db
Recreating testapi_db_1
Attaching to testapi_db_1
db_1   | LOG:  database system was shut down at 2017-04-20 17:19:05 UTC
db_1   | LOG:  MultiXact member wraparound protections are now enabled
db_1   | LOG:  database system is ready to accept connections
db_1   | LOG:  autovacuum launcher started

每当我尝试连接时(使用与之前相同的连接争论),我得到了这个:

^[[Adb_1   | FATAL:  database "test" does not exist

这是我的docker-compose.yml

的一部分
version: "3"
services:
  db:
    image: postgres
    ports:
      - "3700:5432"
    environment:
      POSTGRES_HOST: "127.0.0.1"
      POSTGRES_DB: "test"
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "postgres1"
    tmpfs:
      - /tmp
      - /var/run/postgresql
    volumes:
      - db:/var/lib/postgresql/data
      - ./config/postgres-initdb.sh:/docker-entrypoint-initdb.d/initdb.sh

关于如何重新创建Docker镜像之前的任何想法?它正在工作,因为它是第一次创建

由于

编辑1:如果我运行docker-compose build && docker-compose up

终端抛出这个:

db uses an image, skipping

编辑2:此命令不会再次创建数据库:

docker-compose up --force-recreate --abort-on-container-exit --build db

2 个答案:

答案 0 :(得分:2)

您是否尝试过重建单个postgres容器?

docker build -t <postgrescontainer> 

或使用docker-compose:

docker-compose up --build

重新创建图像而不使用旧的“使用过的”图像。

答案 1 :(得分:0)

您可以使用

查看系统上的图像

docker images

应显示您的图片,然后

docker history --no-trunc your_image

应显示用于创建图像的命令

这是我的不足,就像你看到像

这样的东西

ADD * /opt

您不确切地知道哪些文件被复制,以及包含的文件是什么

还有dockerfile-from-image

https://github.com/CenturyLinkLabs/dockerfile-from-image

最近似乎有一个错误(我不知道它是否已修复)