Docker-compose.yml 파일 작성
deploy/docker-compose.yml
version: '3' services: reactor-demo: image: sooabia/webflux-demo:1.0 restart: always ports: - '80:8080' links: - redis redis: image: redis ports: - "6379:6379" volumes: - /redis:/data/redis restart: always
Redis Volume 폴더 생성
## redis volume을 위한 폴더를 생성합니다. [root@workspace-vm deploy]# mkdir /redis
멀티 컨테이너 실행
## Docker compose로 멀티 컨테이너를 실행합니다. [root@workspace-vm deploy]# docker-compose up -d Creating network "deploy_default" with the default driver Creating deploy_redis_1 ... done Creating deploy_reactor-demo_1 ... done [root@workspace-vm deploy]# [root@workspace-vm deploy]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fc98d294e435 sooabia/webflux-demo:1.0 "java -jar /app.jar" 8 seconds ago Up 6 seconds 0.0.0.0:80->8080/tcp deploy_reactor-demo_1 9ebfffd30318 redis "docker-entrypoint.s 9 seconds ago Up 7 seconds 0.0.0.0:6379->6379/tcp deploy_redis_1 [root@workspace-vm deploy]#
어플리케이션 동작 확인
## 멀티 컨테이너 어플리케이션을 실행합니다. [root@workspace-vm deploy]# curl -XPOST http://localhost/link -H "Content-Type: application/json" -d "{\"link\":\"http://wiki.iisanse.com\"}" {"shortenedLink":"MrzIHZ"}
## Docker compose 멀티 컨테이너를 정리 합니다. [root@workspace-vm deploy]# docker-compose down Stopping deploy_reactor-demo_1 ... done Stopping deploy_redis_1 ... done Removing deploy_reactor-demo_1 ... done Removing deploy_redis_1 ... done Removing network deploy_default [root@workspace-vm deploy]# [root@workspace-vm deploy]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@workspace-vm deploy]#