도커에 대한 사용이유등에 관련한 내용은 일전에 글로 작성했다.
아래 글을 통해 도커의 사용이유를 알 수 있다.
도커 정리
내가 생각하는 도커의 사용이유는 두가지다.
1. 특정 스택을 편하게 사용하기 위해
2. 배포시 필요한 것들을 편하게 설치하기 위함이다.
1번의 이점을 개발하는 내내 톡톡히 봤기 때문에 이렇게 글로 정리해서 나도 글로 보려고 한다.
필자는 맥북 m1 에어 환경이며 이글은 선수지식을 다음과 같다.
db나 레디스를 사용하는 경우 로컬에 설치하는 것보다 도커를 통해 관리하면 관리에 용이하다.
docker compose 는 여러컨테이너를 사용할때 편하겠지만 docker run을 통해 설정값들을 주렁주렁 다는 것보다 훨씬 편하다.
이글은 mysql 연결을 예시로 든것이며 environment는 서비스별로 전부 다르다.
# docker.compose.yml
services:
db:
image: mysql:8.0 # MySQL 이미지 버전
container_name: myselectshop # 컨테이너 이름
environment:
MYSQL_ROOT_PASSWORD: 12345 # 루트 비밀번호
MYSQL_DATABASE: shop # 생성할 데이터베이스 이름
MYSQL_USER: mysqlmysql # 새 사용자 이름
MYSQL_PASSWORD: 12345 # 새 사용자 비밀번호
ports:
- "3306:3306" # 호스트와 컨테이너의 포트 매핑
volumes:
- mysql_data:/var/lib/mysql # Named volume 사용
volumes:
mysql_data: # Docker가 자동으로 생성# 데이터 지속성을 위한 볼륨 설정
# application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/shop
username: mysqlmysql
password: 12345
application.yml은 해당하는 서버에 연결정보등을 기록할 수 있는 관리파일이다
해당 파일에 db 접속정보를 위에 도커를 통해 작성한 정보와 똑같이 맞춘다.