[Docker] 도커 커밋과 빌드

2024. 9. 24. 13:51·Docker · Git
728x90
반응형

커밋 (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

실행 중인 컨테이너를 삭제하고, 이미지를 푸시한다.

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'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
'Docker · Git' 카테고리의 다른 글
  • [Docker] 도커 이미지 레이어 확인
  • [Docker] 이미지 레지스트리
  • [Docker] 도커 로그 log 확인 명령어와 옵션
  • [Docker] 컨테이너의 라이프 사이클 생애 주기
Jaeyeon-Choi
Jaeyeon-Choi
데이터 엔지니어 호소인의 시행착오
    반응형
  • Jaeyeon-Choi
    데엔데엔
    Jaeyeon-Choi
  • 전체
    오늘
    어제
    • 분류 전체보기 (50) N
      • Python (6)
      • Data Engineering (20)
        • Airflow (3)
        • Spark (5)
        • Infra (6)
        • ElasticSearch (1)
        • Hive (3)
        • etc (1)
      • Docker · Git (11)
      • Study (5)
        • SQL (5)
      • CS (1)
        • 운영체제 (0)
        • 네트워크 (1)
        • 알고리즘 (0)
        • 데이터베이스 (0)
      • 주간 · 월간 회고 (6) N
      • 생각 (1)
        • 기타 (1)
        • 뉴스 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    nbextensions
    hive
    폐쇄망
    nginx
    컨테이너
    도커
    SQL
    스파크
    데이터타입
    Spark
    파이썬
    Oracle
    엔진엑스
    Airflow
    이미지
    docker
    데이터엔지니어
    Python
    하이브
    주피터노트북
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Jaeyeon-Choi
[Docker] 도커 커밋과 빌드
상단으로

티스토리툴바