代码之家  ›  专栏  ›  技术社区  ›  ssc

Docker Postgres集装箱在MacOS上不断重生

  •  0
  • ssc  · 技术社区  · 7 年前

    我创造了一个微不足道的 Dockerfile 基于 official Docker PostgreSQL 图像:

    FROM postgres
    

    据我所知,我甚至没有明确地开始,我只是 docker build . 它。

    现在,每当我尝试移除容器时,它都会重新创建并重新启动:

    hostname:~ username$ docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    postgres            <none>              e84edf994e8b        3 weeks ago         234MB
    
    hostname:~ username$ date && docker ps -a
    Thu May 24 13:26:31 CEST 2018
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    6482553729a4        postgres:latest     "docker-entrypoint.s…"   6 minutes ago       Up 6 minutes        5432/tcp            some-postgres.1.a0udiazm08y67gcxhnxbhinh8
    
    hostname:~ username$ date && docker stop 6482553729a4 && docker rm 6482553729a4
    Thu May 24 13:26:47 CEST 2018
    6482553729a4
    6482553729a4
    
    hostname:~ username$ date && docker ps -a
    Thu May 24 13:26:52 CEST 2018
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    7d180c7a4532        postgres:latest     "docker-entrypoint.s…"   4 seconds ago       Created                                 some-postgres.1.jlqe02b1zt9o77gh8ky4zhzr9
    
    hostname:~ username$ date && docker ps -a
    Thu May 24 13:27:01 CEST 2018
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    7d180c7a4532        postgres:latest     "docker-entrypoint.s…"   13 seconds ago      Up 7 seconds        5432/tcp            some-postgres.1.jlqe02b1zt9o77gh8ky4zhzr9
    

    我也尝试了严厉的措施:

    hostname:~ username$ docker kill $(docker ps -q) && docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q)
    7d180c7a4532
    7d180c7a4532
    Untagged: postgres@sha256:1c2cc88d0573332ff1584f72f0cf066b1db764166786d85f5541b3fc1e362aee
    Deleted: sha256:e84edf994e8bc77bf6c60970a2bd32c905ed8782296e67aa46c949a4b47cb678
    
    hostname:~ username$ docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    70f3de1d4b8a        e84edf994e8b        "docker-entrypoint.s…"   45 seconds ago      Up 40 seconds       5432/tcp            some-postgres.1.alq5qjn7adyjvbjeo023kx2fq
    

    显然,该容器甚至不需要运行本地映像:

    hostname:~ username$ docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    

    我尝试重新启动,重新启动Docker守护进程,我搜索了容器映像的 Dockerfile docker-entrypoint.sh 对于一些人 keep-this-container-running-at-all-costs-even-if-it-pisses-off-the-user 选择,但似乎没有什么东西让我觉得是相关的。

    我确实注意到 /Applications/Docker.app/Contents/MacOS/com.docker.supervisor -watchdog fd:0 进程运行可能会继续重新启动容器,但这种想法纯粹是猜测,而且,我似乎找不到任何东西告诉Docker继续重新启动容器,而不是其他容器。

    我不是码头专家,但我使用了许多公共/官方容器,还创建了一些自己的容器,我以前从未见过这个问题。

    这是怎么回事?

    2 回复  |  直到 7 年前
        1
  •  1
  •   trust512    7 年前

    在这种(通常)一次性的情况下,重置Docker是很困难的。我以前也遇到过这样的情况,但在强行清除码头工人之后,这种情况从未持续过。

    你应该去:

    navigation bar -> docker -> preferences -> Reset

    然后做: Reset to factory deafaults

        2
  •  0
  •   slashdottir    6 年前

    另一种不那么激烈的方式:

    docker stop $(docker ps -a -q) &
       docker update --restart=no $(docker ps -a -q) 
    
    推荐文章