실무에서 docker compose up --build를 할 때
docker compose up --build 같은 명령어는 실무에서 보통
기존 컨테이너를 중지한 다음에 하는 건가요? 아니면 실행 중인 상태에서 바로 저 명령어를 쓰는 편인가요?
상관없나요?
回答 2
1
안녕하세요 ! 질문 잘해주셨어요 !
질문해 주신 내용에 대해 답변드려볼게요 ~
"docker compose up —build 같은 명령어는 실무에서 보통 기존 컨테이너를 중지한 다음에 하는 건가요? 아니면 실행 중인 상태에서 바로 저 명령어를 쓰는 편인가요? 상관없나요?"
-> 우선 실행 중인 상태에서 바로 docker compose up —build를 실행해도 괜찮아요 !
Docker Compose가 알아서 변경된 부분을 감지하고, 필요한 컨테이너만 재생성해주기 때문에 굳이 먼저 중지하지 않아도 돼요 !
다만 실무에서는 상황에 따라 다르게 사용하기도 해요 ~
개발 환경에서는 빠르게 변경사항을 반영해야 하니까 실행 중인 상태에서 바로 docker compose up —build를 많이 사용해요 !
반면 운영 환경에서는 안정성을 위해 docker compose down으로 먼저 중지한 다음 docker compose up —build를 실행하는 경우도 있어요 ! 혹시 모를 충돌이나 예상치 못한 상황을 방지하기 위해서요!
정리하면, 실무에서 두 방식 모두 사용되며 개발 환경에서는 편의성을 위해 바로 docker compose up —build를 실행하는 경우가 많고, 운영 환경에서는 안정성을 고려해 컨테이너를 내렸다가 다시 올리거나 무중단 배포 구조를 함께 사용하는 편이에요 !
이런 부분은 정답이 있다기보다는 현재 환경과 상황에 맞춰 선택하시면 돼요 :)
추가로 궁금하신 점 있으시면 언제든 편하게 질문남겨주세요 ~
0
안녕하세요, 인프런 AI 인턴입니다. 11 1님.
Docker Compose의 up --build 명령어 사용에 대해 문의하셨군요. 실무에서는 다양한 시나리오가 존재할 수 있지만, 일반적으로 다음과 같은 경우들을 고려할 수 있습니다.
Docker Compose up --build 사용 시 고려사항
기존 컨테이너 중지:
- 실무에서 중요한 변경 사항이 있는 경우, 특히 데이터베이스나 중단이 중요한 서비스에 변경이 생길 때 기존 컨테이너를 중지하고 새로운 이미지 빌드 후 실행하는 것이 일반적입니다.
docker compose down명령어를 사용하여 안전하게 모든 컨테이너를 중지한 후,docker compose up --build를 사용하여 새로운 이미지를 빌드하고 실행할 수 있습니다.
- 실무에서 중요한 변경 사항이 있는 경우, 특히 데이터베이스나 중단이 중요한 서비스에 변경이 생길 때 기존 컨테이너를 중지하고 새로운 이미지 빌드 후 실행하는 것이 일반적입니다.
Running 상태에서의 업데이트:
- 간단한 코드 변경이나 애플리케이션의 가벼운 업데이트의 경우, 서비스의 중단 없이 바로
docker compose up --build를 사용할 수도 있습니다. 그러나 이 경우에는 서비스 중단 여부와 다운타임이 시스템에 미치는 영향을 충분히 고려해야 합니다.
- 간단한 코드 변경이나 애플리케이션의 가벼운 업데이트의 경우, 서비스의 중단 없이 바로
상관 없을 경우:
- 경우에 따라 애플리케이션이 상태 저장이 필요 없고, 기존에 동작 중이던 서비스의 데이터가 중요하지 않을 경우, 기존 컨테이너 상태를 중지할 필요가 없을 수 있습니다. 하지만 이 역시도 서비스 및 애플리케이션의 특성에 따라 달라질 수 있습니다.
- 경우에 따라 애플리케이션이 상태 저장이 필요 없고, 기존에 동작 중이던 서비스의 데이터가 중요하지 않을 경우, 기존 컨테이너 상태를 중지할 필요가 없을 수 있습니다. 하지만 이 역시도 서비스 및 애플리케이션의 특성에 따라 달라질 수 있습니다.
실무에서의 실제 상황은 배포 환경, 서비스의 특성 및 조직의 운영 정책에 따라 달라질 수 있으므로, 위의 일반적인 가이드라인을 참고하시되, 각 프로젝트의 특성에 맞추어 적용하시기를 권장드립니다.
관련하여 유사한 질문을 아래 링크에서 확인하실 수 있습니다:
- 여러 WAS를 docker compose로 관리할 때 –build 옵션 사용
- Docker Compose 및 이미지 업데이트 전략
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
EC2 터미널에서 docker pull
0
64
2
AWS ECR
0
58
2
FROM openjdk:17-jdk 현재 기준 dockerhub에 없습니다
1
100
2
Redis 볼륨 설정?
0
117
2
컨테이너의 IP
0
80
2
도커 이미지를 만들 때 application.yml
0
105
2
compose.yml 관리
0
88
2
ECR 리포지토리에 이미지가 3개가 보입니다.
0
77
2
액세스 키 등록하는 시점 관련 질문이 있습니다.
0
83
1
depends_on에 따른 컨테이너 실행 순서
0
77
2
실제 웹 서비스 배포 시 질문
0
80
2
도커 volume 질문
0
67
3
HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?
0
74
2
sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?
0
74
2
39강 도커파일 빌드 경로 질문이 있습니다.
0
71
2
도커파일 copy
0
70
2
mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우
0
87
2
도커 허브에서 postgres 버전 확인하는 법
0
128
2
보충 자료와도 관련된 추가 내용
1
83
1
현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?
0
110
2
노션 자료에 안 보이는 이미지가 있습니다
0
101
1
도커 허브에서의 latest가 가장 최신인 게 맞나요?
0
121
2
docker image ls 실행 시 나오는 내용이 다릅니다
0
87
2
윈도우 볼륨 생성이 안됩니다.
0
78
2

