今天,我使用appcontainers/ MediaWiki docker映像部署了一个MediaWiki实例,现在我遇到了一个新问题,我找不到任何线索。 在尝试使用以下方法附加到mediawiki前端容器后:

docker attach mediawiki_web_1

在我的配置上终止,原因我忽略了,也试着:

docker exec -it mediawiki_web_1 bash

我确实得到了一个接近错误的消息:

Error response from daemon: Container 81c07e4a69519c785b12ce4512a8ec76a10231ecfb30522e714b0ae53a0c9c68 is restarting, wait until the container is running

这就是我的新问题,因为这个容器从未停止重新启动。我可以看到,使用docker ps -a总是返回一个状态重启(127)x秒前。

问题是,我能够停止容器(我测试过),但再次启动它似乎将它带回到重新启动循环中。

知道问题出在哪里吗?整个东西都正常工作,直到我试图把它接上……

我很伤心:-(


当前回答

它正在重新启动,状态代码为127,这意味着在容器中有一个丢失的文件/库。启动一个新的容器可能会解决这个问题。

解释:

就我对Docker的理解而言,下面是正在发生的事情:

容器试图启动。在这个过程中,它尝试访问一个不存在的文件/库。 它以127的状态码退出,在这个答案中解释了这一点。 通常,这是容器应该完全退出的地方,但它会重新启动。 它会重新启动,因为重启策略必须被设置为不是no(默认值)的值(使用命令行标志——restart或docker-compose)。Yml键重启),同时启动容器。

解决方案:某些东西可能损坏了容器。理想情况下,启动一个新的容器就可以了。

其他回答

首先检查日志容器失败的原因。因为您的重启策略可能会使容器恢复到运行状态。最好是修复这个问题,然后可能你可以建立一个新的映像,有/没有修复。稍后执行以下命令

Docker系统修剪

https://forums.docker.com/t/docker-registry-in-restarting-1-status-forever/12717/3

我在我的pi4上固定了这个,不知道怎么做。

emby/embyserver_arm32v7:latest -保持重新启动,是否停止,删除重新启动容器,使用:beta

然后尝试ghcr.io/linuxserver/docker-emby/emby:arm32v7-version-4.6.0.3

它没有重新启动,但也没有工作。

停止,rm,然后重试emby/embyserver_arm32v7:latest -现在可以工作了。

不知道为什么。

docker run -d --restart unless-stopped --volume /path/to/programdata:/config --volume /mnt/mydrive:/mnt/share1 --publish 8096:8096 --publish 8920:8920 --env UID=1000 --env GID=100 --env GIDLIST=100 ghcr.io/linuxserver/docker-emby/emby:arm32v7-version-4.6.0.3

如果你创建了一个systemd服务,它有:

[Service]
Restart=always
ExecStart=/usr/bin/docker container start -a my_container
ExecStop=/usr/bin/docker container stop -t 2 my_container

尝试将这些参数添加到docker yml文件中

restart: "no"
  restart: always
  restart: on-failure
  restart: unless-stopped
  environment:
    POSTGRES_DB: "db_name"
    POSTGRES_HOST_AUTH_METHOD: "trust"

最终文件应该如下所示

postgres:
  restart: "no"
  restart: always
  restart: on-failure
  restart: unless-stopped
  image: postgres:latest
  volumes:
    - /data/postgresql:/var/lib/postgresql
  ports:
    - "5432:5432"
  environment:
    POSTGRES_DB: "db_name"
    POSTGRES_HOST_AUTH_METHOD: "trust"

我忘记了Minikube在后台运行,这总是会重新启动它们