Docker-compose.yml 파일 작성
deploy/docker-compose.yml
version: '3'
services:
spring-demo:
container-name: spring-demo
image: sooabia/spring-demo:1.0
restart: always
ports:
- '80:8080'
links:
- redis
redis:
container_name: 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 redis ... done Creating spring-demo ... done [root@workspace-vm deploy]# [root@workspace-vm deploy]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fc98d294e435 sooabia/spring-demo:1.0 "java -jar /app.jar" 8 seconds ago Up 6 seconds 0.0.0.0:80->8080/tcp spring-demo 9ebfffd30318 redis "docker-entrypoint.s 9 seconds ago Up 7 seconds 0.0.0.0:6379->6379/tcp redis [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 spring-demo ... done Stopping redis ... done Removing spring-demo ... done Removing redis ... 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]#