728x90
반응형
출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스
컨테이너로 이미지를 만드는 법
- 이미 존재하는 컨테이너를 이용하면 쉽게 이미지를 만들 수 있다.
- 나만의 이미지를 만들어 똑같은 구성의 컨테이너를 대량으로 만들 수 있고, 다른 컴퓨터 혹은 서버에 이동시킬 수 있다.
- 이미지를 만드는 방법은 2가지가 있다.
- commit 커맨드로 기존 컨테이너를 이미지로 변환
- Dockerfile 스크립트로 이미지 생성
Commit 커맨드로 컨테이너를 이미지로 변환
- 컨테이너를 이미지로 변환한다.
- 컨테이너만 있으면 명령어 한 번으로 이미지를 만들 수 있어 간편하다.
- 이미지로 만들 컨테이너를 먼저 만들어야 한다.
- 기존 컨테이너를 복제하거나 이동할 때 유용하다.
- docker commit 컨테이너_이름 새로운_이미지_이름
Dockerfile 스크립트로 이미지 만들기
- Dockerfile 스크립트를 작성하고 이 스크립트를 빌드해서 이미지를 만드는 방법
- Dockerfile은 이미지를 만드는 것만 할 수 있다. 도커 이미지 파일이다.
- Dockerfile 스크립트에는 토대가 될 이미지나 실행할 명령어 등을 기재한다. 편집은 메모장이나 텍스트 에디터를 사용한다.
- 이 파일을 호스트 컴퓨터의 이미지 재료가 들어있는 폴더에 넣는다. 폴더의 위치는 어디든 상관없다.
- 재료 폴더에는 그 외 컨테이너에 넣을 파일을 함께 둔다.
- 실제 컨테이너를 만들 필요는 없다.
- docker build -t 생성할_이미지_이름 재료_폴더_경로
- Dockerfile은 첫머리에 오는 FROM 뒤에 이미지 이름을 기재하고, 그 뒤로는 파일 복사 또는 명령어 실행 등 컨테이너를 대상으로 할 일을 기술한다.
[실습] commit 커맨드로 컨테이너를 이미지로 변환
- 아파치 컨테이너를 이미지로 변환한다.
- image ls 커맨드로 이미지 목록에 있는지 여부를 확인한다.
실습 내용
- 아파치 컨테이너 생성 및 실행
- 컨테이너를 이미지로 변환
- 확인
이미지 정보
- 컨테이너 이름
- 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 폴더를 그대로 사용한다.
실습 내용
- Dockerfile 스크립트 작성
- 이미지 빌드
- 확인
이미지 정보
- 기반 이미지 이름
- 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
반응형
'Study > 도커와 쿠버네티스 (Docker & Kubernetes)' 카테고리의 다른 글
도커 컴포즈의 정의 (0) | 2024.02.16 |
---|---|
컨테이너 개조 (0) | 2024.02.15 |
볼륨 마운트와 바인드 마운트 (0) | 2024.02.13 |
컨테이너와 호스트 간에 파일 복사 (1) | 2024.02.12 |
컨테이너에 워드프레스 구축 (8) | 2024.02.10 |