如何重新创建Docker容器?

Jav*_*ano 3 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
Run Code Online (Sandbox Code Playgroud)

每当我尝试连接时(与以前相比,连接保持相同),我都会得到:

^[[Adb_1   | FATAL:  database "test" does not exist
Run Code Online (Sandbox Code Playgroud)

这是我的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
Run Code Online (Sandbox Code Playgroud)

关于如何重新创建docker映像的任何想法都已经恢复了?它是第一次创建时就在工作

谢谢

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

终端抛出此:

db uses an image, skipping
Run Code Online (Sandbox Code Playgroud)

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

docker-compose up --force-recreate --abort-on-container-exit --build db
Run Code Online (Sandbox Code Playgroud)

Gab*_*x0r 6

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

docker build -t <postgrescontainer> 
Run Code Online (Sandbox Code Playgroud)

或使用docker-compose:

docker-compose up --build
Run Code Online (Sandbox Code Playgroud)

重新创建图像,而不使用旧的“二手”图像。