IT story

Docker Compose를 사용하는 대화식 쉘

hot-time 2020. 5. 11. 08:07
반응형

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

첫 번째는 -iin에 해당하고 두 번째는에 해당 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

반응형