programing

도커 컴포지업을 사용해야 합니까, 아니면 실행해야 합니까?

oldcodes 2023. 8. 22. 22:28
반응형

도커 컴포지업을 사용해야 합니까, 아니면 실행해야 합니까?

사용해야 하는 이유가 있습니까?run작하기위해를 docker-compose.yml 또는 일파또사합니다야해용냥그를 사용해야 .up?

는 그것을 합니다.run특정 컨테이너를 시작할 수 있지만 모든 yml 컨테이너가 시작되도록 컨테이너를 지정하지 않고 사용하는 경우를 말합니다.

(2015)에서 언급한 바와 같이

실행에 의해 전달된 명령은 서비스 구성에 정의된 명령을 재정의합니다.
들어 웹 이 예를어서구성다경으로 된 경우bash,그리고나서docker-compose run web python app.py 덮어씁니다.python app.py.

번째 은 두번차점은이입니다.docker-compose run명령은 서비스 구성에 지정된 포트를 생성하지 않습니다.
이렇게 하면 포트가 이미 열려 있는 포트와 충돌하는 것을 방지할 수 있습니다.서비스 포트를 만들고 호스트에 매핑하려면 --service-ports 플래그를 지정합니다.

$ docker-compose run --service-ports web python manage.py shell

만 실행)가 한, "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "docker-compose up(한 컨테이너에 대해서도) 충분합니다.

42번 질문의 의견에 명시된 바와 같이, 테스트를 위해 이 작업을 수행하고 있습니다.

추가하는 것을 잊지 마십시오.--rmrun 경우에는 를 .docker-compose run ...종료 후 제거되지 않습니다.
이로 인해 사용자가 이를 알지 못하고 잠시 테스트할 때 컨테이너 목록이 길어질 수 있습니다.


포트를 생성하지 않으려는 이유 또는 시기를 설명해 주시겠습니까?그렇기 때문에 이미 열려 있는 포트와 충돌할 수 있습니다.

단지이는 때문에.docker-compose run서비스에 대해 일회성 명령을 실행하도록 만들어졌습니다.
그 말은, 만약 당신이 이미 한 일이라면.docker-compose up.docker-compose.yml.
docker-compose run이 단계(원오프 명령 실행)에서 동일한 포트를 존중하는 경우 즉시 실패합니다.따라서 이러한 포트는 기본적으로 생성되지 않습니다.


다른 사용 사례(환경 변수 구성 참조):

할 수 있는 하려면 를 합니다.docker-compose run SERVICE env.


이러한 명령의 최신(2019+) 버전은 다음과 같습니다.

도커 문서에서 답변이 왔습니다.

일반적으로, 당신이 원하는 것은docker-compose up.사용하다up 모서든시다작시시에 된 모든 합니다.docker-compose.yml기본 "연결" 모드에서는 모든 컨테이너의 모든 로그가 표시됩니다."분리" 모드(-d), 컨테이너를 시작한 후 출구를 구성하지만 컨테이너는 백그라운드에서 계속 실행됩니다.

docker-compose run명령은 "일회성" 또는 "애드혹성" 작업을 실행하기 위한 것입니다.실행할 서비스 이름이 필요하고 실행 중인 서비스가 종속된 서비스의 컨테이너만 시작합니다. 사용run테스트를 실행하거나 데이터 볼륨 컨테이너에 데이터 제거 또는 추가와 같은 관리 작업을 수행합니다.run명령은 다음과 같이 작동합니다.docker run -ti즉, 컨테이너에 대한 대화형 터미널을 열고 컨테이너 내 프로세스의 종료 상태와 일치하는 종료 상태를 반환합니다.

pdb 디버거와 함께 Python을 사용하고 있다면 다음과 같이 지적하고 싶습니다.

import pdb; pdb.set_trace()

다음을 사용하여 스크립트를 실행해도 셸로 떨어지지 않습니다.

docker-compose up

그러나 실행을 사용하면 예상대로 디버거로 드롭다운됩니다.

docker-compose run

언급URL : https://stackoverflow.com/questions/33066528/should-i-use-docker-compose-up-or-run

반응형