Docker- 컨테이너가 실행되고 있지 않습니다.
나는도 완전하게 하나입니다. 다음과 같이 종료 된 컨테이너를 시작했습니다.
- 을 사용하여 가능한 모든 컨테이너를 사용했습니다
docker ps -a
. 다음을 준비했습니다. 종료 단계에있는 컨테이너를 시작하고 해당 이미지의 터미널로 제공되는 다음 명령을 입력했습니다.
docker start 79b3fa70b51d
docker exec -it 79b3fa70b51d \bin\sh
다음 오류가 발생합니다.
FATA[0000] Error response from daemon: Container 79b3fa70b51d is not running
하지만 docker start 79b3fa70b51d
. 모든 것이 작동하는 것은 출력으로 컨테이너 ID를 던집니다. 이 오류의 원인을 잘 모르겠습니다. 이에 대한 원인과 제안에 대한 아이디어는 저에게 큰 도움이 될 것입니다. 미리 감사드립니다.
컨테이너 79b3fa70b51d
는 echo
.
즉, 시작, 에코 후 즉시 종료됩니다.
다음 docker exec
명령 은 컨테이너에 자신을 연결하고 명령을 실행하기 위해 실행중인 것을 못합니다. 너무 늦었습니다. 컨테이너가 이미 종료되었습니다.
이
docker exec
명령은 실행중인 컨테이너에서 새 명령을 실행합니다.사용하여 시작된 명령
docker exec
은 컨테이너의 기본 프로세스 (PID 1)가 실행되는 동안에 만 실행됩니다.
기본적으로 Docker 컨테이너는 컨테이너에서 실행중인 작업이없는 경우 즉시 종료됩니다.
컨테이너를 백그라운드에서 계속 실행 실행 --detach
(또는 -d
) 인수를 사용하여 실행 해 .
예를 들어 :
docker pull debian
docker run -t -d --name my_debian debian
e7672d54b0c2
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7672d54b0c2 debian "bash" 3 minutes ago Up 3 minutes my_debian
#now you can execute command on the container
docker exec -it my_debian bash
root@e7672d54b0c2:/#
기본 프로세스를 다시 시작할 수없는 경우 (충분히 오래) commit
컨테이너가 새 이미지로 이동 하고이 이미지에서 새 컨테이너를 사용할 가능성도 있습니다 . 이것이 전형적인 모범 사례 워크 플로 는 그것이 아니라는 것이 정말 유용하다는 것을 알게되었습니다.
docker exec -it 6198ef53d943 bash
Error response from daemon: Container 6198ef53d9431a3f38e8b38d7869940f7fb803afac4a2d599812b8e42419c574 is not running
docker commit 6198ef53d943
sha256:ace7ca65e6e3fdb678d9cdfb33a7a165c510e65c3bc28fecb960ac993c37ef33
docker run -it ace7ca65e6e bash
root@72d38a8c787d:/#
먼저 도커 컨테이너를 시작해야합니다.
ankit@ankit-HP-Notebook:~$ sudo docker start 3a19b39ea021
3a19b39ea021
그 후 도커 컨테이너를 확인하십시오.
ankit@ankit-HP-Notebook:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a19b39ea021 coreapps/ubuntu16.04:latest "bash" 13 hours ago
Up 9 seconds ubuntu1
455b66057060 hello-world "/hello" 4 weeks ago
Exited (0) 4 weeks ago vigorous_bardeen
그런 다음 아래 명령을 사용하여 실행하십시오.
ankit@ankit-HP-Notebook:~$ sudo docker exec -it 3a19b39ea021 bash
root@3a19b39ea021:/#
그 이유는 받아 들여진 대답이 말한 것입니다. 이 문제에 대한 이해를 돕기 위해 몇 가지 추가 정보를 추가합니다.
- 컨테이너의 상태를 포함
Created
,Running
,Stopped
,Exited
,Dead
등 나는 알고있다. - 실행
docker create
하면 docker 데몬은 상태가Created
. - 때
docker start
docker 데몬은 상태가Created
또는 인 기존 컨테이너를 시작합니다Stopped
. - 우리가 실행되면
docker run
, 고정 표시기 데몬은 두 단계를 완료합니다 :docker create
와docker start
. - 때
docker stop
, 분명히 고정 표시기 데몬은 컨테이너를 중지합니다. 따라서 컨테이너는Stopped
상태가됩니다. - 가장 중요한 것은 컨테이너가 실제로 오랜 시간 프로세스를 보유하고 있다고 상상합니다. 프로세스가 종료되면 컨테이너 보유 프로세스도 종료됩니다. 따라서이 컨테이너의 상태는
Exited
입니다.
프로세스는 언제 종료됩니까? 다시 말해, 프로세스는 무엇이며 어떻게 시작 했습니까?
대답은 CMD
dockerfile 또는 command
다음 표현식에 있으며 bash
일부 이미지에는 기본적으로 ubutu : 18.04가 있습니다.
docker run ubuntu:18.04 [command]
참고 URL : https://stackoverflow.com/questions/29599632/docker-container-is-not-running
'ProgramingTip' 카테고리의 다른 글
두지도 비교 (0) | 2020.12.05 |
---|---|
HAL과 HATEOAS의 관계 및 차이점 (0) | 2020.12.05 |
Pythonic 방법은 무엇입니까? (0) | 2020.12.05 |
C ++ 17에서 보호 된 생성자에 대한 규칙이 변경 되었습니까? (0) | 2020.12.05 |
ThreadPool 대 작업 (0) | 2020.12.05 |