개발관련/other

이미 존재하는 Docker 컨테이너에서 명령을 실행 시키는 방법

Rateye 2021. 9. 16. 12:00
728x90
반응형

 

질문 : 이미 존재하는 Docker 컨테이너에서 명령을 어떻게 실행합니까?

-d 로 컨테이너를 만들었으므로 대화 형이 아닙니다.

docker run -d shykes/pybuilder bin/bash

컨테이너가 종료 된 것을 확인합니다.

CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                      PORTS               NAMES
d6c45e8cc5f0        shykes/pybuilder:latest   "bin/bash"          41 minutes ago      Exited (0) 2 seconds ago                        clever_bardeen

이제 컴퓨터에서 가끔 명령을 실행하고 종료하고 싶습니다. 응답을 받기 위해.

나는 기계를 시작하려고했다. 첨부 해 보았습니다. run 을 호출 할 수 있다고 생각했지만 허용되지 않는 것 같습니다. start 사용하면 실행되는 것처럼 보이며 빠르게 존재합니다.

종료 후 대화 형 모드로 돌아가고 싶습니다.

나는 시도했다 :

docker attach d6c45e8cc5f0

그러나 나는 얻는다 :

2014/10/01 22:33:34 You cannot attach to a stopped container, start it first

하지만 시작하면 어쨌든 종료됩니다. 22를 잡아라. 나는 이길 수 없다.

답변

2014 년 10 월 Docker 팀은 docker exec 명령을 도입했습니다. https://docs.docker.com/engine/reference/commandline/exec/

이제 실행중인 컨테이너에서 ID (또는 이름) 만 알고있는 모든 명령을 실행할 수 있습니다.

docker exec -it <container_id_or_name> echo "Hello from container!"

exec 명령은 이미 실행중인 컨테이너에서만 작동합니다. 컨테이너가 현재 중지 된 경우 먼저 다음 명령을 사용하여 실행해야합니다.

docker run -it -d shykes/pybuilder /bin/bash

여기서 가장 중요한 것은 detached 를 의미 -d 옵션입니다. 이는 처음에 컨테이너 ( /bin/bash )에 제공 한 명령이 백그라운드에서 실행되고 컨테이너가 즉시 중지 되지 않음을 의미합니다.

출처 : https://stackoverflow.com/questions/26153686/how-do-i-run-a-command-on-an-already-existing-docker-container
728x90
반응형