Docker 명령어 모음
- 항상 이미지 삭제 → 볼륨(데이터 삭제) 순서
- 이미지: 애플리케이션, 볼륨: 애플리케이션의 데이터 라고 이해하면 쉬움
# 실행 종료
sudo docker stop <컨테이너_ID 또는 컨테이너_이름>
# 모든 실행중인 컨테이너 종료
sudo docker stop $(docker ps -q)
# 컨테이너 제거
sudo docker rm mysql-server
# docker 볼륨 목록 확인
sudo docker volume ls
# docker 볼륨 삭제
sudo docker volume rm ubuntu_mysql_data
# 텍스트 에디터
nano docker-compose.yml
# 등록된 컨테이너 확인(실행 안한 컨테이너도 포함)
sudo docker ps -a
- 실행 관련
# 개별 실행
sudo docker-compose up -d <서비스명>
# 전체 실행
sudo docker-compose up -d
# 실행확인
sudo docker ps
Docker Compose 설치
# docker 설치
sudo apt install -y docker.io
# docker 실행 및 실행 확인
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
# 버전 지정 및 설치(2.32.4), uname -s: os이름 출력, uname -m: 하드웨어 이름 출력(x86_64 등)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
Docker-compose 작성
- 총 3개: jenkins, mysql, SpringBoot 실행 로직과 연결된 컨테이너
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "9090:8080"
- "50000:50000"
environment:
TZ: "Asia/Seoul"
volumes:
- jenkins_data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
springboot:
build:
context: /home/ubuntu/backend # jar 파일과 Dockerfile이 있는 디렉토리
dockerfile: Dockerfile
container_name: springboot-app
ports:
- "8080:8080"
environment:
TZ: "Asia/Seoul"
mysql:
image: mysql:8.0
container_name: mysql-server
environment:
MYSQL_ROOT_PASSWORD: "{root_password}"
MYSQL_DATABASE: "{database_name""
MYSQL_USER: "{user_name}"
MYSQL_PASSWORD: "{user_password}"
TZ: "Asia/Seoul"
volumes:
- mysql_data:/var/lib/mysql
ports:
- "3306:3306"
volumes:
jenkins_data:
mysql_data:
- Spring Boot 실행 로직 담은 Dockerfile 작성(nano로 작성)
- 해당 실행은 Docker-compose의 컨테이너 실행시 작동
# 베이스 이미지로 Java 17 런타임을 포함하는 슬림 이미지를 사용합니다.
FROM openjdk:17-jdk-slim
# 작업 디렉토리를 /app으로 설정합니다.
WORKDIR /app
# 여기서 'gogoma-0.0.1-SNAPSHOT.jar' 파일 이름은 실제 jar 파일 이름에 맞게 수정하세요.
COPY gogoma-0.0.1-SNAPSHOT.jar app.jar
# 컨테이너가 시작될 때 실행할 명령을 지정합니다.
ENTRYPOINT ["java", "-jar", "app.jar"]
'배포, 운영 > Infra' 카테고리의 다른 글
[Infra] HTTPS 적용 (0) | 2024.12.16 |
---|---|
[Infra] HTTPS 재갱신 및 자동 갱신 적용 방법 (1) | 2024.09.29 |