# 도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문을 참고하였습니다. - 위키북스 -
일반적으로 시스템은 단일 애플리케이션이나 미들웨어만으로는 구성되는 것이 아니다. 웹 애플리케이션은 리버스 플록시 역할을 하는 웹 서버를 프론트앤드에 배치하고 그 뒤로 비즈니스 로직이 담긴 애플리케이션 서버가 위치해 데이터 스토어 등과 통신하는 구조로 완성된다. 여러 애플리케이션 간의 연동 및 통신, 그리고 이들간의 의존관계를 통해 하나의 시스템이 구성되는 것이다. - 책 발췌 -
우선, 기본적으로 한개의 컨테이너를 실행해보자.
▣ docker-compose 명령으로 컨테이너 실행하기
도커 컴포즈는 yaml포맷으로 기술된 설정파일로, 여러 컨테이너를 한번에 관리할 수 있게 해준다. ($ docker-compose version 버젼확인)
BookPro:~ jason$ docker-compose version docker-compose version 1.24.1, build 4667896b docker-py version: 3.7.3 CPython version: 3.6.8 OpenSSL version: OpenSSL 1.1.0j 20 Nov 2018 |
docker command 기본명령 | docker-compose.yml 파일활용 (확장) |
$ docker container run -d -p 9000:8080 example/echo:latest |
version: "3" services: echo: image: example/echo:latest ports: - 9000:8080 |
(실행) $ docker-compose up (정지 혹은 삭제) $ docker-compose down |
# 여기서 잠시 ! docker-compose.yml에서 version 에 대해 알아보자. docker-engine 버젼에 따라 compose file format에서 버젼도 달라진다. (예) 도커 엔진이 18.06.0+ 일경우, Compose file format 은 3.7 이 된다.
https://docs.docker.com/compose/compose-file/compose-versioning/
▣ docker-compose 명령어 및 옵션
$ docker-compose up -d --build
--build 옵션을 사용하면, 도커 이미지를 강제로 다시 빌드하게 할 수 있다. -d 는 백그라운드에서 명령어가 실행된다.
▣ docker-compose 여러 컨테이너 실행하기
version: "3"
services:
master:
container_name: master
image: jenkinsci/jenkins:2.142-slim
ports:
- 8080:8080
volumes:
-./jenkins_home:/var/jenkins_home
links:
- slave01
slave01:
container_name: slave01
image: jenkinsci/ssh-slave
environment:
- JENKINS_SLAVE_SSH_PUBKEY=ssh-rsa AAAAABBCDF232NKD ......
docker-compose 파일을 위와 같이 작성한다.
master와 같은 서비스에 있는 slave01을 link로 설정하여 master가 slave01 컨테이너명으로도 찾을수 있게 된다.
volume 항목은 호스트와 컨테이너 사이에 파일을 공유할 수 있는 메커니즘이다.
(cf. Dockerfile의 COPY인스트런션이나 docker container cp 명령은 파일 복사 기능)
volume: - [호스트의 디렉토리]:[컨테이너의 디렉토리] |
'도커 docker' 카테고리의 다른 글
Docker 도커 이미지 컨테이너 명령어 (0) | 2019.11.04 |
---|---|
sudo 없이 도커 명령어 사용하기 docker (0) | 2019.06.19 |
도커 필수 명령어 docker command option (0) | 2019.06.19 |
우분투에 도커 설치 docker on ubuntu (0) | 2019.06.15 |