Docker Compose를 사용하는 대화식 쉘
Docker Compose 만 사용하여 컨테이너에서 대화식 쉘을 시작하는 방법이 있습니까? 내 docker-compose.yml에서 이와 같은 것을 시도했습니다.
myapp:
image: alpine:latest
entrypoint: /bin/sh
docker-compose up을 사용 하여이 컨테이너를 시작하면 즉시 종료됩니다. 대화식 쉘로 시작하기 위해 시작점 명령에 추가하거나 myapp에 대한 추가 옵션으로 추가 할 수있는 플래그가 있습니까?
이 작업을 수행하는 기본 docker 명령 옵션이 있다는 것을 알고 Docker Compose 만 사용할 수 있는지 궁금합니다.
docker-compose.yml에 다음 줄을 포함해야합니다.
stdin_open: true
tty: true
첫 번째는 -i
in에 해당하고 두 번째는에 해당 docker run
합니다 -t
.
docker-compose로 대화 형 쉘을 얻는 정식 방법은 다음을 사용하는 것입니다. docker-compose run --rm myapp
당신은 설정할 수 있습니다 stdin_open: true, tty: true
그러나 그것은 실제로 당신과 함께 적절한 쉘을 제공하지 않습니다, up
로그는 모든 컨테이너에서 스트리밍되기 때문에.
당신은 또한 사용할 수 있습니다
docker exec -ti <container name> /bin/bash
실행중인 컨테이너에 쉘을 가져옵니다.
공식적인 시작하기 예제 ( https://docs.docker.com/compose/gettingstarted/ )에서 다음과 같이 docker-compose.yml
:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
로 시작한 후에는 다음 docker-compose up
을 사용하여 redis
컨테이너 또는 컨테이너에 쉽게 껍질을 벗길 수 있습니다 web
.
docker-compose exec redis sh
docker-compose exec web sh
docker-compose run myapp sh
거래를해야합니다.
up
/ 와 약간의 혼동이 run
있지만 docker-compose run
문서에는 훌륭한 설명이 있습니다 : https://docs.docker.com/compose/reference/run
docker-compose를 사용 하여이 작업을 수행하는 가장 쉬운 방법은 docker ps -a
(로 컨테이너를 시작한 후 docker-compose up
)하고 대화 형 셸을 사용하려는 컨테이너의 ID를 얻는 것입니다 (xyz123이라고 함).
그런 다음 실행하는 것이 간단합니다. docker exec -ti xyz123 /bin/bash
그리고 대화식 쉘인 voila.
미래의 누군가가 여기서 궁금해하는 경우 :
docker-compose exec container_name sh
또는
docker-compose exec container_name bash
또는 당신은 같은 한 줄을 실행할 수 있습니다
docker-compose exec container_name php -v
이미 컨테이너를 가동 한 후에
docker-compose exec SERVICE_NAME sh
명령 행에서 수행 할 수 있습니다 . 은 SERVICE_NAME
에 정의되어 있습니다 docker-compose.yml
. 예를 들어
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
는 SERVICE_NAME
"사육사"일 것이다.
참고 URL : https://stackoverflow.com/questions/36249744/interactive-shell-using-docker-compose
'IT story' 카테고리의 다른 글
스프링 부트-데이터베이스 유형 NONE에 대한 임베디드 데이터베이스 드라이버 클래스를 판별 할 수 없음 (0) | 2020.05.11 |
---|---|
현재 디렉토리의 전체 경로를 얻는 Windows 셸 명령? (0) | 2020.05.11 |
Spring에서 List Bean을 정의하는 방법은 무엇입니까? (0) | 2020.05.11 |
문자열 날짜를 NSDate로 변환하려면 어떻게해야합니까? (0) | 2020.05.11 |
iPhone 6 및 6 Plus에서 앱의 기본 해상도를 활성화하는 방법은 무엇입니까? (0) | 2020.05.11 |