안녕하세요! Do My Best 블로그 입니다.
이번에는 docker에대해 포스팅하려고 합니다.
docker에 대한 개념설명을 먼저하려고 했으나 제가 연습한 내용이 있어서 해당 내용을 간단히 먼저 포스팅하려고 합니다. ㅎㅎ
docker를 이용하여 어느 환경에서나 동일한 작업환경을 구성할 수 있는 장점이 있는데요 이때 사용하는 것이 dockerfile, docker-compose 입니다.
여기서 docker-compose는 여러개의 이미지 파일을 이용하여 여러개의 컨테이너를 실행시켜 동일한 작업 환경을 구축하는데에 사용하기위해 사용하는 파일입니다. ㅎㅎ
이번 포스팅에서는 apache tomcat, mysql 환경을 구축하는 docker-compose 파일을 작성하는 방법에대해 알아보도록 하겠습니다.
해결 순서
- docker 설치
- docker-compose 파일 작성
- docker-compose 파일 실행
간단하죠? ㅎㅎ 사실 설치와 실행은 더 간단합니다. 가장 중요한것은 docker-compose 파일을 작성하는 것입니다.
그럼 실습을 통해서 한번 진행해 보도록 하겠습니다.
1. docker 설치
apt-get update
apt-get upgrade
#=> 간단히 리눅스 환경에서 update와 upgrade를 해줍니다. ㅎㅎ
apt-get install curl
#=> docker를 apt-get으로 설치해도 되지만 curl를 이용해서 설치하기위해 curl를 설치 해줍니다.
curl -fsSL https://get.docker.com/ | sudo sh
#=> curl 명령어를 이용해 docker를 설치 해줍니다.
간단한 설치 과정으로 1번 과정이 끝이 났습니다.
아래 파일은 docker-compose-apache-tomcat-mysql 에서 보실 수 있습니다.
2. docker-compose 파일 작성
version: '2'
services:
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: test
MYSQL_USER: user
MYSQL_PASSWORD: 1234
ports:
- "3306:3306"
volumes:
- "./db:/docker-entrypoint-initdb.d"
restart: always
web:
image: tomcat:latest
environment:
JDBC_URL: jdbc:mysql://db:3306/test?connectTimeout=0&socketTimeout=0&autoReconnect=true
JDBC_USER: user
JDBC_PASS: 1234
ports:
- "80:8080"
volumes:
- ./tomcat/webapps:/user/local/tomcat/webapps
links:
- db
restart: always
#=> 1번째: db라는 이름으로 컨테이너를 생성합니다.
#=> 2번째: 최신 버전의 mysql이미지를 다운받습니다.
#=> 3~7번째: db컨테이너에대해 환경설정을 하는 부분입니다.
#=> 8~9번째: host포트와 docker container포트를 연결할 port번호입니다.
#=> 10~11번째: 컨테이너안에서 사용하는 데이터를 host에 저장할 위치입니다.
#=> 이외에 web도 비슷한 흐름이므로 설명을 생략하겠습니다.
#=> 추가적으로 web에서 links는 연결할 컨테이너 이름입니다. 컨테이너를 연결하여 web에 enviroment등과 같이 설정을 연결할 수 있습니다.
이외에도 여러가지 옵션이 있고 복잡한 환경설정을 할 수 있지만 기본적으로 환경설정을 할 수 있는 설정파일작성이 끝이 났습니다.
해당 내용을 docker-compose.yml
로 저장하고 터미널환경으로 나와 줍니다~ㅎㅎ
3. docker-compose 파일 실행
이제 해당 내용이 잘 작성되었는지 실행해보도록 하겠습니다.
docker-compose up
#=> 해당 커맨드를 입력하면 docker-compose.yml파일이 실행이 됩니다.
#=> 백그라운드로 파일을 시작하고 싶다면 `-d` 옵션을 추가적으로 입력해줍니다.
실행이 완료되면 docker ps 명령어를 이용하여 db와 web컨테이너가 잘 실행되었는지 확인합니다.
docker ps
위에 사진처럼 두개의 컨테이너가 실행이 된것을 확인하시면 됩니다
여기서는 tomcat과 mysql두개의 컨테이너를 생성하는 커맨드를 docker-compose파일로 작성하였지만 추가적으로 자신이 개발할 환경에 맞는 커맨드를 이용하여 docker-compose파일을 만든다면 어디서나 똑같은 개발환경을 구축하는데에 편해질것입니다.
또한 위에 적힌 커맨드 옵션 이외에도 많은 옵션들이 있으니 공부하시면서 테스트 해보시면 좋을 것같습니다.
지금까지 docker-compse를 이용하여 tomcat, mysql 컨테이너 환경 구축하는 방법에대해 포스팅했습니다.
해당 게시물에 문제가 있다면 댓글을 통해 피드백해주시면 감사하겠습니다~ 같이 공부해요~^^
방문해주신분들 댓글 한개씩 달아주시면 감사하겠습니다~~^^