Docker COMPOSE

오늘은 Docker COMPOSE를 하려고 합니다.

(터미널 환경 Only!!!)

Docker-compose

  • 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에 추가 설정을 넣어준다.

8080은 범위내에서 얼마든지 변경해서 넣어주면 된다.
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

에러가 나네요. 에러 검색해보니 윈도우 환경에서는 해당 ‘winpty’를 붙여주라고 하네요.

아직 kafka와 zookeeper를 실행 하지 않아서 topic이 보여지지 않네요.

docker compose를 최종적으로 성공했습니다.
Docker Desktop for Mac Installation 에서는 mac 버전을 설치하는 법을 설명했습니다.

Leave a Comment