그렇다면, 생성된 이미지파일이 다수일경우, 위와같은 명령어를 이미지명과, volume 경로등 개별 옵션들을 변경하여 명령어를 입력해야한다 다수의 이미지들을 정해진 설정으로 한번에 컨테이너로 모두 만들수는없을까 ? docker-compose 활용하면, 작성해둔 이미지별 설정정보로 한번에 여러이미지를 컨테이너로 만들수있다. 설치부터 한번 알아보자
필자는 위와같이 docker-compose를 사용한다. mariadb는 순수 docker hub에서 제공하는 이미지를 사용하고, jenkins와 deploy 는 Dockerfile을 만들어 이미 이미지로 생성된 상태로 설정정보를 진행하였다. docker-compose 공식문서를 참고하도록하자 .
docker-compose 를사용하여 컨테이너 실행
1
$ sudo docker-compose up -d
-d 백그라운드로 실행
1
2
3
mariadb is up-to-date
deploy is up-to-date
Creating jenkins
이미지가 이미 컨테이너로 실행되어있으면, up-to-date를, 이미지를 컨테이너로 처음 실행된다면 Creating jenkins를 표시한다. 이제 컨테이너가 정상적으로 실행되었는지 확인해보자 .
1
$ sudo docker ps -a
1
2
3
4
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a3cf0852e58 jenkins "/opt/tomcat/bin/cata" 4 minutes ago Up 4 minutes 0.0.0.0:89->8080/tcp jenkins
5846e1ba049f deploy "/usr/sbin/sshd -D" 47 hours ago Up 47 hours 0.0.0.0:33->22/tcp, 0.0.0.0:88->3000/tcp, 0.0.0.0:87->4000/tcp deploy
7a53b6623118 mariadb "docker-entrypoint.sh" 3 months ago Up 4 days 0.0.0.0:3306->3306/tcp mariadb
실행한후, 컨테이너가 제대로 실행되었는지, STATUS 탭 을 꼭확인하도록하자. 만약 Exited 라고 표시되었다면 컨테이너 실행도중 죽은것이므로 docker-compose.yml 파일을 다시한번 체크하도록 하자. (특히 docker-compose.yml 에 기술하는 services들의 문법이 엄격하다 특히 띄어쓰기를 주의해야한다)
견해
docker-compose를 통해 다중 이미지들을 컨테이너로 실행하는 법을 알아보았다. 현재 글에서 docker-compose 버전은 2를 사용하고있다. 현재 3.1버전까지 나온상태로 확인이된다. 음 .. docker-compose 3.x 를 사용한후 익숙해지면 새롭게 포스트를 올리도록 하겠다.