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
반응형
'개발관련 > other' 카테고리의 다른 글
Ruby on Rails 서버 옵션 (0) | 2021.09.17 |
---|---|
덜 알려졌지만 유용한 데이터 구조에 대해서 (0) | 2021.09.17 |
클래스 이름 지정 - 모든 것을 "<WhatEver>Manager"라고 부르지 않는 방법 (0) | 2021.09.16 |
JSON이란 무엇이며 사용해야 하는 이유 (0) | 2021.09.15 |
C#에서 "yield break;"의 역할 (0) | 2021.09.14 |