커밋 (Commit)
실행 중인 컨테이너를 그대로 이미지로 만드는 방식. 직접 새로운 이미지를 만든다. 기존 이미지 + 레이어 1개로 새로운 이미지가 만들어지며, 여러 레이어를 쌓으려면 커밋을 여러 번 반복한다.
빌드 (Build)
도커 데몬이 도커 파일 (Docker file)이라는 명세서를 통해 이미지를 만든다. 여러 레이어를 쌓을 때, 도커 파일에 적어 놓으면 도커 데몬이 지시어에 따라 이미지를 생성한다.
IaC (Infrastructure as Code)
코드형 인프라. 코드로 인프라를 관리한다.
IaC와 도커 빌드
도커 빌드가 IaC이다. 도커 파일로 인프라 관리가 가능하다. 커밋에서 사용자가 직접 수행했던 것을 도커 파일의 지시어로 기록한다. 이미지를 빌드할 때 도커 데몬이 도커 파일로 이미지를 만든다.
커밋 실습
docker run it --name officialNginx nginx bin/bash
official nginx 컨테이너를 실행과 동시에 터미널에 접속할 수 있는 명령어이다. ls 명령어로 nginx 구조를 확인한다. root@f714~ 로 터미널에 접속되어 있는 것을 볼 수 있다. 오른쪽 터미널에 보면 f로 시작하는 게 컨테이너의 아이디이다.
docker commit -m "edited index.html" -c 'CMD I"ngin×", "-g", "daemon off;"]' officialNginx registry_name/commitnginx
실행 중인 nginx를 커밋한다.
docker image ls registry_name/commitnginx
이미지가 잘 커밋됐는지 확인한다.
docker image history registry/commitnginx
이미지의 히스토리에서 edited index.html 코멘트로 커밋된 레이어를 확인할 수 있다.
docker run -d -p 80:80 --name my-nginx registry_name/commitnginx
레지스트리에 커밋한 이미지를 80번 포트로 실행한다.
localhost에 접속하면 엔진엑스 웹 페이지를 확인할 수 있다.
docker login
docker push registry_name/commitnginx
도커 허브 로그인 후 만든 이미지를 푸시하면 끝.
빌드 실습
빌드는 VScode에서 진행했다.
도커 파일의 내용은 이렇게 적었다.
- From 이미지명:베이스
- COPY 파일 경로 복사할 경로
- CMD ["명령어"] 컨테이너 실행 시 명령어 지정
docker build -t jaeyeonn/buildnginx .
이미지를 빌드한다.
docker run -d -p 80:80 --name my-nginx registry_name/buildnginx
빌드한 이미지를 실행한다.
localhost에서 확인하면 이런 모습.
docker rm -f build-nginx
docker push registry_name/buildnginx
실행 중인 컨테이너를 삭제하고, 이미지를 푸시한다.
'Docker · Git' 카테고리의 다른 글
[Docker] 도커 이미지 레이어 확인 (0) | 2024.09.23 |
---|---|
[Docker] 이미지 레지스트리 (0) | 2024.09.20 |
[Docker] 도커 로그 log 확인 명령어와 옵션 (0) | 2024.09.19 |
[Docker] 컨테이너의 라이프 사이클 생애 주기 (0) | 2024.09.19 |
[Docker] 메타 데이터 수정하기, 덮어쓰기 (0) | 2024.09.19 |