데이터센터프로그래밍09(3)
09-도커파일과 이미지 생성
🔴 도커파일 의미?
◽ Docker-file
: "A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image."
➡ 사용자가 이미지를 조합하기 위해 명령줄에서 호출할 수 있는 모든 명령이 포함된 텍스트 문서
◽ Using docker build
: "Users can create an automated build that executes several command-line instructions in succession."
➡ 도커 빌드를 사용하면 여러 명령줄 명령을 연속적으로 실행하는 자동화된 빌드를 만들 수 있음
🔹 즉, 도커파일은 컨테이너 이미지를 생성하는데 사용되는 텍스트 기반 지침의 스크립트라고 할 수 있음
® 참고문헌 : https://docs.docker.com/engine/reference/builder/
🟠 도커파일 명령어?
FROM
: image를 지정하는 명령어LABEL
: version 정보와 image 설명을 작성하는 명령어CMD
: docker container 시작할 때 실행되는 shell 명령을 지정하는 명령어RUN
: docker image가 생성되기 전에 수행 할 shell 명령어ENTRYPOINT
: docker container 시작할 때 실행되는 명령어EXPOSE
: docker container 공개 port 설정하는 명령어ENV
: docker container 내부에서 사용할 환경 변수 정하는 명령어WORKDIR
: docker container의 작업 디렉토리 설정하는 명령어COPY
: docker 클라이언트의 현재 디렉토리에서 파일 추가하는 명령어ADD
: file과 디렉토리 or 특정 URL의 데이터를 docker image에 추가하는 명령어SHELL
: shell 프로그램을 지정하는 명령 (CMD 명령으로 대체 가능)ARG
: dockerfile 내에서 필요한 변수를 설정하는 명령어USER
: docker image & container에서 작업하는 사용자 ID를 지정하는 명령어ONBUILD
: 새로운 image 생성할 때 실행되는 명령어VOLUME
: docker image를 위해 볼륨을 생성하는 명령어
🟡 도커 파일생성 및 이미지 빌드하기 예시_1
# ubuntu:14.04 태그 값 (FROM <이미지 이름>:<태그>) FROM ubuntu:14.04 MAINTAINER: # RUN은 Dockerfile이 이미지를 생성하는 과정에서 실행될 명령어 RUN apt-get update RUN apt-get install -y nginx RUN echo "this is a ubuntu container" # 명령을 실행하기 위한 디렉토리를 지정 WORKDIR /etc/nginx # 이미지에 포함되어 있는 SW를 실행하는데 사용 CMD ["nginx", "-g", "daemon off;"] # container가 연결을 받는 port EXPOSE 80
docker build --tag myubuntu:1.0 . docker image ls docker run --name myubuntu-nginx -d -p 4000:80 myubuntu:1.0 docker container ls docker stats # localhost:4000
🟤 도커 파일생성 및 이미지 빌드하기 예시_2
# 이미지 이름을 'ubuntu'로 함 FROM ubuntu # Dockerfile이 이미지를 생성하는 과정에서 업데이트, nginx를 설치 후 자동으로 'yes'함 (터미널에서 아래의 명령을 실행) # apt-get은 리눅스 배포판 중의 하나인 우분투에서 사용할 수 있는 일종의 앱스토어 # update는 설치할 수 있는 프로그램들의 목록을 최신상태로 갱신 RUN apt-get update RUN apt-get install nginx -y # 웹브라우저가 요청했을 때 웹서버가 웹페이지의 파일을 찾는 디렉토리 COPY index.html /var/www/html/ # port = 80 EXPOSE 80 # 서버 실행 CMD ["nginx","-g","daemon off;"]
docker build --tag myubuntu:1.0 . docker image ls docker run -p 5000:80 myubuntu:1.0 docker container ls docker stats # localhost:5000
🦒 주의 🦒
- Dockerfile 에서 CMD 는 1개만 적용
- 여러 개를 지정한 경우 마지막 CMD 만이 적용
Author And Source
이 문제에 관하여(데이터센터프로그래밍09(3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dkddkkd55/데이터센터프로그래밍093저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)