-
Docker) Docker Image 생성 실습해보기Cloud/Docker 2022. 10. 4. 12:35
실습 환경 : AWS console (2022/10), Visual Studio Code
실습 목적 : Docker Image를 통해 conatiner를 생성
Docker Image
- Docker Image는 container를 생성하기 위한 목적으로 사용한다.
- Docker Hub를 통해 미리 작성된 Docker Image를 다운로드 하는것이 일반적이다.
- 사용자가 원하는 형태의 Image를 별도로 생성할 수 있고, 필요하다면 registry를 통해 배포할 수도 있다.
Docker Image 생성하기
Dockerfile
# Dockerfile은 image 생성 내용을 기술한 텍스트 파일이다.
# Dockerfile을 빌드하여 image를 생성한다
# Dockerfie 주요 명령어
- FROM
-- 생성하려는 image의 base image 지정
-- hub.docker.com에서 제공하는 공식 image 사용을 권장한다.
-- 크기가 적은 base image를 사용해야 이미지 전체의 크기를 줄일수 있다.
-- tag를 지정하지 않으면 latest버전으로 지정된다.
- RUN
-- 설정된 기본 이미지에 패키지 업데이트, 각종 패키지 설치, 명령 실행 등을 작성한다.
-- 1개 이상 작성 가능하다.
- CMD
-- 생성된 Docker image를 container로 생성하여 실행할 때 실행되는 명령을 기술한다.
-- ENTRYPOINT 명령문으로 지정된 명령에 default로 넘길 파라미터를 지정할 때 사용한다.
-- 여러개의 CMD 명령을 사용해도 마지막 한개의 CMD만 처리한다.
-- 일반적으로 image의 container 실행시
application daemon이 실행 되도록 하는 경우 유용하다.
- ENTRYPOINT
-- 생성된 Dokcer image를 container로 실행할때 실행되는 명령
-- container 실행시 명령 및 인자값을 전달하여 실행한다는것이 CMD와의 차이점이다.
-- 여러 CMD를 사용하는 경우 ENTRYPOINT 명령과 함꼐 사용한다.
- COPY
-- Host에 있는 파일을 Docker image에 복사하는 명령
-- 통상적으로, Dockerfile간 같은 디렉토리에 있는 파일을 Docker image에 복사할 때 사용한다.
- EXPOSE
-- container가 host 네트워크를 통해 들어오는
트래픽을 listening하는 포트와 프로토콜을 지정한다.
- WORKDIR
-- container상에서 작업할 경로의 전환을 위해 사용한다.
-- WORKDIR을 지정하면 RUN, CMD, ENTRYPOINT, COPY 명령은
해당 디렉토리를 기준으로 실행하게 된다.
# Build 명령어
docker build <Dockerfile 위치> -t <image 이름><TAG>
# Dockerfile을 이용하여 Docker image를 생성하는 명령어다.
# -t 옵션을 사용하면 docker image에 tag추가를 허용한다.
# <사용자 ID>는 docker image를 docker registry에 upload할 때 사용한다. (생략가능)
# 실습
# 파일 저장 디렉토리 생성 및 웹서버에서 동작할 html 과 js 파일을 복사한다.
- mkdir calc-ubuntu
- html 파일 : index.html
- js 파일 : calc.jsFROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y apache2 COPY ./index.html /var/www/html COPY ./calc.js /var/www/html EXPOSE 80 CMD [ "/usr/sbin/apache2ctl", "-DFOREGROUND" ]
# image 생성에 필요한 Dockerfile를 생성한다.
docker build calc-ubuntu -t calc-ubuntu:0.1 # docker build <Dockerfile 위치> -t <image 이름><TAG>
# build 명령으로 Dockerfile 파일위치를 지정하여 이미지 생성한다.
# 생성된 이미지를 확인한다.
docker run -dit -p 80:80 --name calc-web calc-ubuntu:0.1
# 생성된 이미지로 웹서비스가 가능한 container 생성
# container가 Dockerfile형식대로 잘 생성되었는지 확인한다.
# 외부접속이 잘 되는지 확인한다.
docker commit
# 현재 동작중인 container로 image 생성
# docker commit 명령을 통해 image를 생성한다.docker commit <Run 상태인 container ID 또는 NAMES> <생성할 imagae 이름>
# docker commit 명령으로 python-run을 lotto-python 이미지로 생성 (:0.1은 버전정보, TAG)
docker run -it --rm <container ID 또는 NAMES> <Image 이름>
# 생성한 이미지로 container 생성 및 파일 실행
참고 자료
Dockerfile 명령어 참고자료 : https://docs.docker.com/engine/reference/builder/
'Cloud > Docker' 카테고리의 다른 글
Docker) Docker Volume 실습해보기 (0) 2022.10.04 Docker) Dockerfile 실습해보기 (0) 2022.10.04 Docker) Docker Container JavaScript 실습해보기 (0) 2022.10.03 Docker) Docker Container python 실습해보기 (0) 2022.10.02 Docker) Docker Container Run 옵션 실습해보기 (0) 2022.10.02