오늘은 Docker COMPOSE를 하려고 합니다.
(터미널 환경 Only!!!)
-
Docker 설치하기
-이미 설치 했다면 윈도우 혹은 맥에 cmd 혹은 terminal에서
docker-compose -v 명령어를 확인한다
설치가 안되어 있을 경우
https://github.com/docker/compose/releases 접속하여 운영체제 맞는 것으로 설치한다.
PIP이 설치되어 있다면 PIP을 이용해서 명령어 으로 설치한다.
pip install -U docker-compose
-
Docker compose 파일을 자신의 운영체제 시스템에 어떤 위치에든 docker-compose.yml 작성한다.
linux명령어 기준으로
mkdir (파일위치) 폴더명 touch docker-compose.yml vi docker-compose.yml
web: image: nginx database: image: redis
w 저장 후 q!
cat docker-compose.yml
저장 확인
- 파일의 validity(타당성?)을 확인한다.
$ docker-compose config
services: database: image: redis web: image: nginx version: '3.9'
확인이 안되는 경우 docker-compose.yml 파일에서 원하는 버전을 https://docs.docker.com/compose/compose-file/ 확인해서 넣어준다.
-
도커 파일을 커맨드로 실행한다.
docker-compose up -d
참고용: 도커 운영 상태를 체크한다.
docker ps
운영 중인 도커를 내린다( 참고용)
docker-compose down
-
docker-compose.yml에 추가 설정을 넣어준다.
services: web: image: nginx ports: - 8080:80 database: image: redis
설정 후 다시 docker-compose config로 설정을 실행 혹은 확인한다.
docker-compose config services: database: image: redis web : image: nginx ports: - published: 8080 target: 80 version: '3.9'
도커를 다시 ps 실행한다.
실행되어 있는지 확인한다.
인터넷 페이지에도 localhost:8080으로 접속해서 도커가 실행되어 있는지 확인한다.
-
도커를 정상적으로 실행했는지 확인했으니 우리가 탑재할 어플리케이션에 도커를 연동한다.
docker-compose up -d --scale database=4
(즉 아까 설정에 넣어 주었던 데이터베이스와 갯수를 넣어준다.)
자세한 실습 내용은 아래 사이트를 참조해주시면 됩니다.
What is Docker Compose | How to create docker compose file | How to use Compose – YouTube
추가 내용
아래 내용은 [Docker] Kafka 환경 구축하기 :: victolee (tistory.com) 참조해서 해보았습니다.
위에서 만들어준 폴더에 나와 새로운 폴더에 Kafka를 위한 설정을 만들었습니다.
version: '2' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka:2.12-2.5.0 container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock
해당 폴더에서 terminal로 다시 실행및 테스트를 합니다.
docker-compose up -d
실행되어 있는 container를 확인합니다.
docker container ls
(혹은 docker ps)
Kafka 메시지 생산/소비가 잘 작동하는지를 확인합니다.
docker container exec -it kafka bash kafka-topics.sh --list --bootstrap-server localhost:9092