Published 2023. 5. 28. 17:55
728x90
반응형
docker-compose 문제
docker-compose 를 통해 컨테이너를 동시에 실행시키려고 하니 다음과 같은 에러가 발생했다.
실행과 동시에 바로 종료가 되어 버린다...
그래서 원인을 찾아보니 docker container 는 하나의 명령어를 실행한다고 한다.
명령어의 수행이 끝나면 당연히 컨테이너가 종료된다. 에러를 보았듯이 정상 종료가 되어 버린다.
이러한 이유에서 명령어를 주지 않거나 단순히 하나의 명령어만 실행할 경우 명령어만 실행하고 곧바로 종료가 되어버린다.
때문에 계속해서 실행될 수 있도록 명령이 끝나지 않도록 하거나 명령이 끝나도 종료되지 않게 해주어야 한다.
해결 방법
다음과 같이 docker-compose.yaml 파일에 다음과 같이 옵션을 추가해주면 된다고 한다.
stdin_open: true
tty: true
stdin_open 옵션은 표준 입력이 가능하도록 유지해주는 옵션이고
tty 옵션은 터미널을 실행해주는 옵션이다.
docker run 할 때 -i 옵션, -t 옵션과 같다고 보면 된다. 둘 중 하나의 옵션만 사용해주어도 바로 종료되지 않는다고 한다.
그래서 바로 추가해주고 실행해보았다.
version: '3.8'
services:
nn:
image: hadoop-base:latest
container_name: nn
hostname: nn
ports:
- 50070:50070
- 9000:9000
volumes:
- nn:/opt/hadoop/namenode
networks:
- bridge
stdin_open: true
tty: true
(...)
이렇게 옵션을 추가하고 실행해보니 바로 종료되지 않고 잘 실행되는 것을 확인할 수 있다.
참고 사이트
728x90
반응형
'DevOps > Docker' 카테고리의 다른 글
docker entrypoint.sh 파일의 exec $@ (0) | 2023.05.28 |
---|---|
Docker dangling image 삭제하기 (0) | 2023.03.29 |
Docker Mysql 5.7 설치하기 (0) | 2023.03.08 |
What is Docker (2) | 2023.02.03 |
Error response from daemon: Bad response from Docker engine (0) | 2022.11.25 |