윈도우 : https://with-rl.tistory.com/entry/Windows에-Docker-Desktop-설치하기
맥 : https://happylie.tistory.com/78
도커가 설치되었으면 터미널(PowerShell)에서
docker -version
해당 명령어를 입력하였을 때 도커의 버전이 나온다면 성공적으로 설치된 것이다.
Dokerfile : docker 이미지를 어떻게 만들 것인지 설정을 저장하는 파일.
프로젝트 최상단에 Dockerfile을 작성한다.
[Dockerfile 예시]
# base 이미지 설정
FROM openjdk:17-jdk-slim
# 해당 위치의 jar 파일을 컨테이너 내부에 복사
COPY build/libs/*.jar app.jar
# 외부 호스트 8080 포트로 노출
EXPOSE 8080
# 실행 명령어
CMD ["java", "-jar", "app.jar"]
JAR: Java ARchive의 약자로, 여러 파일(Java 클래스 파일, 리소스 파일 등)을 하나의 압축된 파일로 묶어주는 포맷이다.
JAR 파일은 주로 Java 애플리케이션을 배포할 때 사용되며, Java에서 실행 가능한 애플리케이션이나 라이브러리를 패키징하는 데 주로 사용된다.
해당 위치로 이동한 후 build하면 (Gradle을 사용하는 경우)
cd [~워킹 디렉토리 위치]
./gradlew clean build
jar 파일이 생겨난 것을 확인할 수 있다.
혹은 Gradle - build - bootJar를 실행해도 Jar 파일은 생성된다.
이제 배포하고자 하는 파일을 도커 이미지로 만들어야 한다.
이미지 : 도커 이미지(Docker Image)는 애플리케이션을 실행하기 위한 모든 파일, 라이브러리, 설정 등을 포함한 읽기 전용 템플릿이다.
도커 이미지는 Docker 컨테이너를 생성할 때 사용되며, 컨테이너는 해당 이미지를 기반으로 동작하는 방식이다.
[도커 이미지 생성]
docker build -t [도커 이미지에 붙일 이름] .
이 때 ' . '을 꼭 붙여주어야 한다.
성공적으로 이미지가 생성되었는지 확인하기 위해서
docker images
커맨드를 입력하면 현재 존재하는 이미지들에 대한 정보를 확인할 수 있다.
혹은 Docker DeskTop의 Images 탭에서 현재 존재하는 이미지들을 확인할 수도 있다.
이제 생성한 도커 이미지를 도커 컨테이너로 실행하면 된다.
도커 컨테이너 : 도커 컨테이너(Docker Container)는 도커 이미지를 기반으로 실행되는 독립적인 실행 환경이다. 컨테이너는 도커 이미지를 실행한 결과물로, 이미지에 포함된 애플리케이션이 실제로 동작하는 환경을 제공한다.
docker run -it -d --rm --name test-docker-container -p 8080:8080 test-docker
docker run ~ [이미지 이름]
: 컨테이너 생성 및 실행-it
: 컨테이너에 터미널 커맨드로 명령 입력 가능-d
: 컨테이너 백그라운드에서 실행--rm
: 컨테이너 종료, 중지되면 자동 삭제--name [붙일 컨테이너 이름]
: 컨테이너 Alias(없으면 컨테이너 ID 사용)-p [localhost port] : [docker post]
: 로컬 호스트의 포트와 도커의 포트 연결도커 컨테이너가 잘 생성 및 실행되었는지 확인하고 싶다면
docker ps -a
커맨드를 통해 확인하거나
Docker DeskTop의 Container 탭에서 확인하면 된다.
[도커 컨테이너 상태 변화 명령 커맨드]
# Docker 컨테이너 중지
$ docker stop [도커 컨테이너 이름 or ID]
# Docker 컨테이너 시작
$ docker start [도커 컨테이너 이름 or ID]
# Docker 컨테이너 재시작
$ docker restart [도커 컨테이너 이름 or ID]
컨테이너를 실행 후 localhost:8080으로 접속해보면
페이지가 잘 열리는 것을 확인할 수 있다.
도커로 성공적으로 서버를 실행하였다.
이제 도커를 이용하여 MySQL을 연동해보자.
마찬가지로 MySQL도 똑같이 도커 이미지를 만들고 컨테이너를 실행하는 방식으로 하면 된다.
docker pull mysql(:버전)
해당 커맨드를 입력하면 MySQL 측에서 이미 배포해둔 MySQL 도커 이미지를 다운로드할 수 있다.
만약 mysql 뒤를 생략하면 자동으로 최신 버전(latest)이 다운되고 버전을 명시해주면 해당 버전을 다운로드할 수 있다.
docker run -it -d --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 mysql
docker exec -it mysql mysql -u root -p
컨테이너 내부에 접속하는 docker exec
로 mysql 컨테이너에 접속한 후
비밀번호를 입력하고
create database [DB 이름] # DB 생성
use [DB 이름] # DB 연결
MySQL 명령어로 DB를 설정하면 도커 컨테이너를 이용한 MySQL 연결이 완료된다.