코딩마을방범대
WEB & WAS & DB 서버 구축 Docker 이미지화 시키기 본문
프로젝트에 대한 서버 구축할 일이 자주 생긴다면, 매번 Java 설치하고 MySQL 설치하고 등등의 진행 사항을 거치기 매우 번거롭다.
Docker 이미지를 통해 필요한 설정들을 미리 설정해놓고 구동만 시켜준다면 시간도 절약되고 중간 단계가 생략될 위험도 줄어든다.
또한, 배포가 용이하여 가이드라인을 제작하기 쉽다.
오늘은 서버의 용도에 따른 Dockerfile을 설정하는 방법을 알아볼 것이다.
초기 도커 세팅은 아래의 첫번째 포스트를 통해서 설치해주면 된다.
이 포스트에서는 도커파일 만드는 방법을 설명할 것이며, 도커 파일을 이미지로 빌드하는 포스트는 아래의 두번째 포스트를 참고해주면 된다!
우분투에서 Docker 사용하기
이전포스트 참고하여 Docker가 뭔지 알아봤고, 우분투에 Docker를 설치하여 사용 예정이다. https://sweet-rain-kim.tistory.com/146 컨테이너와 Docker란? 컨테이너(Container)란? 애플리케이션을 환경에 구애받지
sweet-rain-kim.tistory.com
Docker 이미지 생성하기
Docker에 대한 기본 상식과 기초 사용 방법은 아래 포스트를 참고! 컨테이너와 Docker란? 컨테이너와 Docker란?컨테이너(Container)란? 애플리케이션을 환경에 구애받지 않고 실행하는 기술이다. 운영
sweet-rain-kim.tistory.com
WEB 서버
Nginx Dockerfile
# Nginx 이미지 기반
FROM nginx:alpine
# Nginx 설정 파일 복사
COPY ./..nginx.conf /etc/nginx/nginx.conf
# HTML 파일이나 정적 파일 복사
COPY ./html /usr/share/nginx/html
# 포트 노출
EXPOSE ["80","8080"]
nginx.conf
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 필요한 추가 설정
}
WAS 서버
내부 톰캣을 사용하므로 별도 톰캣을 설치하지 않고, 자바만 설치하여 진행하였다.
WAR Dockerfile
# Java 8 기반 이미지
FROM openjdk:8-jdk-alpine
# WAR 파일 복사
COPY ./your-app.war /app/your-app.war
# 애플리케이션 실행
CMD ["java", "-jar", "/app/your-app.war"]
# 포트 노출
EXPOSE 8080
DB 서버
DB는 MySQL인데 초기 클린테이블이 필요해서 sql 파일을 넣어주었다.
sql 파일 설정은 각자의 서버에 맞게 세팅해주면 되기 때문에 예시는 따로 없다!
DB Dockerfile
# MySQL 이미지 기반
FROM mysql:5.7
# 초기 데이터베이스 설정 파일 복사
COPY init.sql /docker-entrypoint-initdb.d/
# 환경 변수 설정
ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_DATABASE=mydatabase
# 포트 노출
EXPOSE 3306
Docker 설정 파일
Docker Compose 파일
docker-compose.yml:
version: '3.8'
services:
web:
build: ./web
ports:
- "80:80"
was:
build: ./was
ports:
- "8080:8080"
depends_on:
- db
db:
build: ./db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mydatabase
ports:
- "3306:3306"
이후 아래 명령어를 통해 실행해준다.
docker-compose up --build
웹 서버: http://localhost
WAS: http://localhost:8080
DB: MySQL 클라이언트로 localhost:3306에 접속
'💡 백엔드 > Docker' 카테고리의 다른 글
Docker 내에서 Docker 사용하기 (0) | 2023.09.07 |
---|---|
Docker 이미지 생성하기 (0) | 2023.09.05 |
우분투에서 Docker 사용하기 (0) | 2023.09.04 |
컨테이너와 Docker란? (0) | 2023.08.29 |