programing

도커: 컨테이너가 다시 시작할 때 다시 시작됩니다.

yellowcard 2023. 10. 2. 13:53
반응형

도커: 컨테이너가 다시 시작할 때 다시 시작됩니다.

저는 오늘 앱컨테이너/미디어위키 도커 이미지를 사용하여 미디어위키 인스턴스를 배포했는데, 이제 단서를 찾을 수 없는 새로운 문제가 생겼습니다.다음을 사용하여 미디어위키 전면 컨테이너에 부착을 시도한 후:

docker attach mediawiki_web_1

은 다음과 같습니다.Terminated무시하는 이유로 내 환경설정에서 다음을 시도합니다.

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 --tail 50 --follow --timestamps mediawiki_web_1

를 에서 새 할 수도 .docker run -ti <your_wiki_image>그게 어떤 역할을 하는지 알아보려고요일부 구성을 사용자의 구성에서 매핑해야 할 수도 있습니다.docker-compose에 아주 적합한docker지휘.

미디어 위키 프로세스에 첨부하는 것이 충돌을 일으켜 데이터가 손상되었다고 생각합니다.

.docker kill CONTAINER_ID다.docker stop -t 1 CONTAINER_ID또한 작동하지 않으므로 컨테이너를 삭제할 수 있습니다.

docker container rm CONTAINER_ID

오늘도 컨테이너가 계속해서 다시 시작하는 문제가 있었습니다.

제 경우의 문제는 제가 서투른 엔지니어인 것과 관련이 있었습니다.

어쨌든 나는 컨테이너를 삭제하고 코드를 수정한 후 컨테이너를 다시 조립하고 실행함으로써 문제를 해결했습니다.

앞으로 이 문제를 해결하는 데 도움이 되기를 바랍니다.

내 경우에는 제거했습니다.

Restart=always

추가된

tty: true

그리고 shell을 열기 위해 아래 명령어를 실행하였습니다(daemon process, docker는 composite 파일을 읽고 컨테이너가 파일의 마지막 줄에 도달하면 정지하기 때문입니다).

docker-compose up -d

tl;dr 상태 코드를 사용하여 다시 시작하고 있습니다.127가 합니다./입니다.새 컨테이너를 시작하면 해결될 수도 있습니다.

설명:

도커에 대한 제 이해에 의하면, 이런 일이 벌어지고 있습니다.

  1. 컨테이너가 시작하려고 합니다.이 과정에서 존재하지 않는 파일/라이브러리에 접근하려고 합니다.
  2. 됩니다의 됩니다.127, 이것은 이 답변에서 설명됩니다.
  3. 일반적으로 컨테이너가 완전히 빠져나갔어야 하는 곳이지만 다시 시작됩니다.
  4. 재시작 정책이 (기본값)이 아닌 다른 것(명령줄 플래그 사용)으로 설정되어 있어야 하므로 재시작됩니다.--restartedocker-compose.ymlyrestart를 시동하는 을(를) 시작합니다.

해결책:무언가가 당신의 컨테이너를 손상시켰을 수도 있습니다.새 용기를 시작하는 것이 이상적입니다.

도커 스웜트라이(docker swarm try)에 있었기 때문에 이 문제가 있었습니다.

docker swarm leave --force

는 될 수 .systemd다음을 포함하는 서비스:

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

개인적인 경험으로 볼 때 도커 컨테이너 내에 문제가 있어서 다시 시작할 수 없는 것 같습니다.따라서 컨테이너 내의 일부 프로세스로 인해 재시작이 중단되거나 일부 프로세스로 인해 시작 시 컨테이너가 충돌하게 됩니다.

컨테이너를 시작할 때 컨테이너에 첨부하려면 분리된 "-d"를 시작해야 합니다. (예: "docker run -d mediawiki_web_1")

nginx 컨테이너가 계속 재시작되고 있는 경우, nginx 컨테이너의 로그를 확인하여 .crt와 .key 파일에 오류가 있다는 것을 알게 되었습니다. 그래서 각각의 .conf 파일, .crt와 .key를 제거하고 nginx를 재시작했습니다.다시 시작하지 않아도 잘 작동하고 있습니다.

한 후 한 후 했습니다. 제 dev 에서 prod 했습니다에서 했습니다. 문제는 제 문제였습니다.docker-compose.yml, 기본적으로 , 를 유지하고 싶었기 의 몽고 간에 이었고, 이었습니다. 기본적으로 가장 최근에 풀링했습니다. 그리고 데이터 경로를 유지하고 싶었기 때문에 개발자의 몽고 버전 간에 불일치가 발생했습니다. 4.4.3이었고 prod에서 가장 최신의(아마도 5.x) 해결책은 이미지를 다음과 같이 지정하는 것이었습니다.mongo:4.4.3d이 mongo

DB 업그레이드의 길을 가기 싫었습니다.

먼저 컨테이너가 왜 실패했는지 로그를 확인합니다.재시작 정책으로 인해 컨테이너가 실행 상태로 돌아갈 수 있기 때문입니다.문제를 해결하는 것이 좋습니다. 그러면 수정 없이 새 이미지를 만들 수 있을 것입니다.나중에 아래 명령 실행

docker system prune

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

나는 미니큐브가 백그라운드에서 작동하는 것을 잊어버렸고 그것이 항상 그들을 다시 시작하게 했습니다.

도커를 설치한 파티션을 확인합니다.대부분의 경우 파티션 용량이 100%이므로 이에 대해 조사해야 할 수도 있습니다.

저는 테스트하고 제거했습니다 --다시 시작하는 것은 항상 저에게 효과가 있습니다.

나는 이것을 어떻게 하는지 이해하지 못하고 pi4에서 고쳤습니다.

emby/embyserver_arm32v7:latest - 계속 재시작, 중지 여부, 재시작된 컨테이너 제거, 사용:beta

그런 다음 ghcr.io/linuxserver/docker-emby/emby:arm32v7-version-4.6.0.3 으로 시도해 봅니다.

계속 시동이 걸리지는 않았지만, 작동도 되지 않았습니다.

stop, 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

도커스 폴더 안에 있는 모든 폴더를 삭제하고 모든 이미지를 다시 리빌드했습니다.

 docker-compose up -d --build

그리고.

docker-compose up -d

저도 원래 같은 문제가 있었습니다.처음에는 컨테이너 운영 중에 오류가 발생한 것 같은데 아무 문제가 없습니다.드디어 알았어요, 작업이 끝나면 자동으로 컨테이너 출구가 나오는 거예요.그럼... 진입점의 끝 줄에 간단한 명령만 추가하면 됩니다.sh:

꼬리 -f/dev/

그러면 컨테이너가 시작된 후에도 계속 실행됩니다.행운을 빌어요! :)

달리기를 해 보다

docker stop CONTAINER_ID &docker rm -v CONTAINER_ID

감사해요.

언급URL : https://stackoverflow.com/questions/37471929/docker-container-keeps-on-restarting-again-on-again

반응형