- 도커 실행하기
개념 : 도커는 이미지 기반으로 컨테이너를 가동시킨다.
1. 도커 백그라운드 실행
2. 이미지 빌드
docker build .
3. 이미지 고유 id 확인
4. 컨테이너 실행
docker run -p {로컬머신 port}:{컨테이너 port} {이미지 고유 id}
-도커 종료하기
1. 새 터미널 창 띄우기
2. 실행 중인 모든 컨테이너 출력
docker ps
3. 컨테이너 이름 확인
4. 컨테이너 종료
docker stop {컨테이너_name}
- 이미지 레이어 이해하기, 최적화
이미지 빌드 시 도커는 Dockerfile의 도커 명령어 마다 하나의 레이어를 생성하여 관리하는 레이어 아키텍처 기반으로 되어 있다. 빌드 후 도커는 레이어들을 캐시하고 있으며 이미지 재빌드 시 결과가 이전과 동일하다고 인식하면 제로 그 명령어를 다시 거칠 필요없다고 판단하여 캐시를 사용하여 불러온다.
여기서 중요한 점은 변경된 레이어 이후의 모든 명령어는 캐시를 사용하지 않고 모든 레이어가 다시 빌드된다. 이유는 이전 변경된 레이어로 인해 현재 레이어가 재빌드 후 동일한 결과를 산출할지 보장할 수 없기 때문이다.
최적화 예시) 애플리케이션 코드 변경
변경된 코드를 컨테이너에 반영하고 싶다면 이미지를 새로 생성하여 컨테이너를 실행해야 한다.
여기서 이미지를 새로 빌드하여 생성해야 하는데 시간이 오래 걸리기 때문에 캐시를 사용하여 최적화 할 수 있다.
기존 Dockerfile의 명령어 순서는 모든 폴더를 복사 후 npm install 명령어를 실행 시키는데 npm install에 필요한 파일은 package.json 파일뿐이기 때문에 먼저 package.json만 복사 후 npm install을 실행하도록 바꾼다면 COPY . ./ 명령어 전 까지의 레이어들은 변경된 사항을 없기 때문에 캐시를 사용할 수 있어 빌드 시간을 줄일 수 있다.
'백엔드 개발' 카테고리의 다른 글
이미지 vs 컨테이너 (0) | 2022.09.22 |
---|---|
Docker 명령어 (0) | 2022.09.22 |
Docker 란 (0) | 2022.09.16 |
SSE 프로토콜을 활용한 채팅서버 (0) | 2022.05.15 |
OAuth 2.0 개념 (0) | 2022.05.05 |
댓글