Docker 사용법 (feat. docker compose)

Jan 12, 2023
Docker 사용법 (feat. docker compose)
 

Intellij

 
#dockerfile 작성
# Dockerfile # jdk17 Image Start FROM openjdk:17 # 인자 설정 - jar_file ARG JAR_FILE=build/libs/*.jar # jar 파일 복제 COPY ${JAR_FILE} app.jar # 실행 명령어 ENTRYPOINT ["java", "-jar", "app.jar"]
 
#docker-compose.yml 작성
version: '3' services: web: container_name: web image: rossssa/first expose: - 8080 ports: - 8080:8080
docker-compose 여러 컨테이너를 가지는 애플리케이션을 통합적으로 생성하고, 각각의 컨테이너를 시작 및 중지하는 작업을 더 쉽게 수행할수록 도와주는 도구
여러 컨테이너 관리 뿐만 아니라 의존성 관리도 가능
 
예를 들어, 웹 서비스는 front server, back server, database server 등으로 구성되기에 각 서버를 docker container로 생성하여 연결, 동작 시키고 해당 컨테이너를 관리하는 것이 docker compose의 기능
 
notion image
(현재는 aboutbook이라는 큰 애플리케이션 컨테이너 내에 web 컨테이너만 존재
필요 시, db container 및 redis container 등을 추가하여 한번에 관리 가능!)
 
#Intellij의 ⚙️bootJar 이용해서 .jar 파일 빌드 (libs 하단 .jar 파일 생성)
notion image
 
#docker hub에 로그인 및 repository 생성
notion image
 
#Intellij 터미널에서 docker login
docker login -u [사용자이름] -p [비밀번호]
 
#docker Image 생성
docker build -t [사용자이름]/[리퍼지토리 이름] .
이때 . 까먹으면 안됨! 오류
. 으로 현재 위치 입력해주는 것
 
#docker image 확인
docker images
docker image들 정보 조회
 
#docker hub로 image push
docker push [사용자이름]/[리퍼지토리 이름]
 
 
 

배포한 서버(gcp, ec2)

 
#docker 다운로드
sudo apt install docker
 
#docker 실행
sudo systemctl start docker
Failed to start docker.service: Unit docker.service not found.
위 오류 발생 시
curl -sSL https://get.docker.com/ | sh
이 코드 입력!
 
#docker image 배포할 서버로 가져오기
sudo docker pull [사용자 이름]/[리퍼지토리 이름]
 
#docker image 실행
sudo docker run -d -p 8080:8080 [사용자 이름]/[리퍼지토리 이름]
-d: 백그라운드 실행
 
#docker image 태그 이름 변경
docker tag [old-image-name]:[old-tag] [new-image-name]:[new-tag]
 
#실행 중인 docker container 목록 확인
sudo docker ps
 
#docker container중지
sudo docker stop [container_id]
 
Share article

neeke