컨테이너로 이미지 만들기

728x90
반응형

출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스

 

 

컨테이너로 이미지를 만드는 법

  • 이미 존재하는 컨테이너를 이용하면 쉽게 이미지를 만들 수 있다.
  • 나만의 이미지를 만들어 똑같은 구성의 컨테이너를 대량으로 만들 수 있고, 다른 컴퓨터 혹은 서버에 이동시킬 수 있다.
  • 이미지를 만드는 방법은 2가지가 있다.
    • commit 커맨드로 기존 컨테이너를 이미지로 변환
    • Dockerfile 스크립트로 이미지 생성

 

Commit 커맨드로 컨테이너를 이미지로 변환

  • 컨테이너를 이미지로 변환한다.
  • 컨테이너만 있으면 명령어 한 번으로 이미지를 만들 수 있어 간편하다.
  • 이미지로 만들 컨테이너를 먼저 만들어야 한다.
  • 기존 컨테이너를 복제하거나 이동할 때 유용하다.
  • docker commit 컨테이너_이름 새로운_이미지_이름

 

Dockerfile 스크립트로 이미지 만들기

  • Dockerfile 스크립트를 작성하고 이 스크립트를 빌드해서 이미지를 만드는 방법
  • Dockerfile은 이미지를 만드는 것만 할 수 있다. 도커 이미지 파일이다.
  • Dockerfile 스크립트에는 토대가 될 이미지나 실행할 명령어 등을 기재한다. 편집은 메모장이나 텍스트 에디터를 사용한다.
  • 이 파일을 호스트 컴퓨터의 이미지 재료가 들어있는 폴더에 넣는다. 폴더의 위치는 어디든 상관없다.
  • 재료 폴더에는 그 외 컨테이너에 넣을 파일을 함께 둔다.
  • 실제 컨테이너를 만들 필요는 없다.
  • docker build -t 생성할_이미지_이름 재료_폴더_경로
  • Dockerfile은 첫머리에 오는 FROM 뒤에 이미지 이름을 기재하고, 그 뒤로는 파일 복사 또는 명령어 실행 등 컨테이너를 대상으로 할 일을 기술한다.

 

 

[실습] commit 커맨드로 컨테이너를 이미지로 변환

  • 아파치 컨테이너를 이미지로 변환한다.
  • image ls 커맨드로 이미지 목록에 있는지 여부를 확인한다.

 

실습 내용

  1. 아파치 컨테이너 생성 및 실행
  2. 컨테이너를 이미지로 변환
  3. 확인

 

이미지 정보

  • 컨테이너 이름
    • zw_apache_container
  • 새로 만들 이미지 이름
    • zw_apache_image

 

실습

 

docker run --name zw_apache_container -d -p 8092:80 httpd

 

zw_apache_container 라는 이름의 아피치 컨테이너를 생성 및 실행한다. 포트 번호는 8092번 포트를 사용한다.

 

 

docker commit zw_apache_container zw_apache_image
docker image ls

 

아파치 컨테이너(zw_apache_container)로 새로운 이미지(zw_apache_image)를 생성한다. image ls 커맨드를 입력하면 우리가 만든 새로운 이미지가 생성된 것을 확인할 수 있다. (도커 데시크탑에서도 확인 가능)

 

 

[실습] Dockerfile 스크립트로 이미지 생성

  • 파일 복사를 이용해 httpd 이미지에 새로운 파일을 추가한다.
  • 재료 폴더는 이전 장의 바인드 마운트에 사용했던 docker_ex 폴더를 그대로 사용한다.

 

실습 내용

  1. Dockerfile 스크립트 작성
  2. 이미지 빌드
  3. 확인

 

이미지 정보

  • 기반 이미지 이름
    • httpd
  • 새로 만들 이미지 이름
    • zw_apache_image2

 

실습

 

이미지 재료와 재료 폴더를 준비한다. 나는 이전 장에서 만든 docker_ex 폴더를 사용하겠다.

 

 

FROM httpd	-> 토대가 되는 이미지를 지정. 여기서는 아피치(httpd)
COPY index.html /usr/local/apache2/htdocs	-> 이미지에 파일 추가

 

메모장을 열고 위 내용을 입력하고 Dockerfile.txt로 저장한다.

 

 

Dockerfile.txt에서 txt 확장자를 제거한다.

 

 

docker build -t zw_apache_image2 C:\Users\zangw\OneDrive\문서\docker_ex
docker image ls

 

build 커맨드를 사용해 재료 폴더에서 이미지를 빌드한다.

 

image ls 커맨드를 입력하면 우리가 만든 이미지(zw_apache_image2)가 생성된 것을 확인할 수 있다.

 

 

docker run --name apac -d -p 8093:80 zw_apache_image2

 

우리가 만든 이미지를 토대로 컨테이너를 생성한다. 포트는 8093번 포트를 사용한다.

 

 

웹 브라우저를 열고 http://localhost:8093 으로 접속하면 우리가 이전에 index.html에 작성했던 메시지가 출력된다.

 

 

docker stop apac
docker rm apac
docker image rm zw_apache_image2

도커 컨테이너를 중지 및 제거하고 우리가 만든 이미지를 제거한다. httpd 이미지는 다음에도 사용할 예정이므로 제거하지 않는다.

728x90
반응형