![](/img/trans.png)
[英]Why does Docker container keeps restarting? ERROR: getaddrinfo EAI_AGAIN
[英]Docker: Container keeps on restarting again on again
我今天使用 appcontainers/mediawiki docker 圖像部署了一個 MediaWiki 實例,現在我遇到了一個新問題,我找不到任何線索。 在嘗試使用以下方法附加到 mediawiki 前端容器之后:
docker attach mediawiki_web_1
這回答了Terminated
on my configuration for a reason I ignore,同時嘗試:
docker exec -it mediawiki_web_1 bash
我確實收到了接近錯誤消息的內容:
Error response from daemon: Container 81c07e4a69519c785b12ce4512a8ec76a10231ecfb30522e714b0ae53a0c9c68 is restarting, wait until the container is running
還有我的新問題,因為這個容器永遠不會停止重啟。 我可以看到使用docker ps -a
總是返回Restarting (127) x seconds ago
的狀態。
問題是,我能夠停止容器(我測試過)但再次啟動它似乎將其帶回其重啟循環。
知道這里可能是什么問題嗎? 在我嘗試附加到它之前,整個事情都正常工作......
我很傷心:-(
當您不以交互方式運行容器時, docker logs
命令將向您顯示容器正在生成的輸出。 這可能包括錯誤消息。
docker logs --tail 50 --follow --timestamps mediawiki_web_1
您還可以使用docker run -ti <your_wiki_image>
在前台運行一個新容器以查看它的作用。 您可能需要將一些配置從docker-compose
yml 映射到docker
命令。
我猜想附加到媒體 wiki 進程會導致崩潰,從而破壞了您數據中的某些內容。
當docker kill CONTAINER_ID
不起作用並且docker stop -t 1 CONTAINER_ID
也不起作用時,您可以嘗試刪除容器:
docker container rm CONTAINER_ID
我今天遇到了類似的問題,容器處於連續重啟循環中。
我的問題與我是一個糟糕的工程師有關。
無論如何,我通過刪除容器、修復代碼、然后重建和運行容器來解決問題。
希望這對將來遇到此問題的任何人有所幫助
tl;dr它正在以狀態碼127
重新啟動,這意味着您的容器中缺少文件/庫。 啟動一個新容器可能會解決它。
解釋:
就我對 Docker 的理解而言,這就是正在發生的事情:
127
退出,此答案中對此進行了說明。no
(默認值)以外的值(使用命令行標志--restart
或docker-compose.yml
鍵restart
)。解決方案:某些東西可能損壞了您的容器。 理想情況下,啟動一個新容器應該可以完成這項工作。
就我而言,我刪除了
Restart=always
添加
tty: true
並執行以下命令打開 shell(守護進程,因為 docker 讀取 compose 文件並在容器到達文件的最后一行時停止容器)。
docker-compose up -d
從個人經驗來看,您的 docker 容器中存在不允許重啟的問題。 因此,容器中的某些進程導致重新啟動掛起,或者某些進程導致容器在啟動時崩潰。
啟動容器時,如果要附加到它,請確保以分離的“-d”啟動它。 (例如“docker run -d mediawiki_web_1”)
如果您創建了具有以下功能的systemd
服務,也可能是這種情況:
[Service]
Restart=always
ExecStart=/usr/bin/docker container start -a my_container
ExecStop=/usr/bin/docker container stop -t 2 my_container
我遇到了這個問題,因為我在 docker swarm 中嘗試:
docker swarm leave -force
在我的例子中 nginx 容器一直在重啟,我檢查了 nginx 容器的日志,發現不需要域的 .crt 和 .key 文件有錯誤,所以我刪除了各自的 .conf 文件、.crt 和 .key 然后重新啟動nginx 。 就是這樣 nginx 無需重新啟動即可正常工作。
我忘記了 Minikube 在后台運行,這就是總是重新啟動它們的原因
首先檢查日志容器失敗的原因。 因為您的重啟策略可能會使您的容器恢復運行狀態。 更好地解決這個問題,然后可能你可以構建一個有/沒有修復的新圖像。 稍后執行以下命令
docker system prune
https://forums.docker.com/t/docker-registry-in-restarting-1-status-forever/12717/3
在 dev 中運行很長時間后將代碼部署到 prod 服務器后,我遇到了同樣的問題,問題是在我docker-compose.yml
文件中,我沒有為 mongo 圖像指定標簽,通過默認它是最新的,因為我想保留數據路徑,所以在 dev 上的 mongo 版本之間存在不匹配,它是 4.4.3,而在 prod 中它是最新的(我猜是 5.x),我的解決方案是指定圖像為mongo:4.4.3
而不僅僅是mongo
我不想走升級數據庫的道路
我剛剛測試並刪除了 --restart always 並且它對我有用。
嘗試將這些參數添加到您的 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"
檢查安裝 docker 的分區。 在大多數情況下,分區的容量為 100%,因此您可能需要對此進行調查。
我在我的 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
我刪除了 dockers 文件夾中的所有文件夾並再次重建所有圖像,它對我有用。
docker-compose up -d --build
和
docker-compose up -d
嘗試運行
docker stop CONTAINER_ID
& docker rm -v CONTAINER_ID
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.