FROM ubuntu:20.04
FROM python:3.9-slim-buster
FROM mongo:4.4.4-bionic
일반적으로 이미지를 빌드한 작성자 이름과 이메일을 작성한다.
MAINTAINER kevin.lee <bunny@dshub.cloud>
이미지 작성 목적으로 버전, 타이틀, 설명, 라이선스 정보 등을 작성한다.
1개 이상 작성 가능하다.
LABEL purpose = 'Nginx for webserver'
LABEL version = '1.0'
LABEL description = 'web service application using Nginx'
권장 사항
LABEL purpose = 'Nginx for webserver' \
version = 1.0' \
description = 'web service application using Nginx'
설정된 기본 이미지에 아래 내용을 작성한다.
apt, yum 방법과 동일.
RUN apt update
RUN apt -y install nginx
RUN apt -y install git
RUN apt -y install vim
RUN apt -y install curl
RUN apt update && apt install -y ngnix \
git \
vim \
curl && \
apt-get clean -y && \
apt-get autoremove -y && \
rm -rfv /tmp/* /var/lib/apt/lists* /var/tmp/*
RUN ["/bin/bash", "-c", "apt update"]
RUN ["/bin/bash", "-c", "apt -y install ngiix git vim culr"]
CMD apachectl -D FOREGROUND
CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
CMD ["nginx", "-g", "daemon off;"]
CMD ["python", "app.py"]
생성된 이미지가 컨테이너로 실행될 때 사용
컨테이너가 실행될 때 명령어 및 인자 값을 전달하여 실행한다.
ENTRYPOINT ["npm", "start"]
ENTRYPOINT ["python", "runapp.py"]
ENTRYPOINT ["phthon"]
CMD ["runapp.py"]
동일 환경에 entrypoint.sh
- 셸 스크립트를 이미지에 넣고(ADD)
- 실행권한 설정(RUN)
- 컨테이너 실행시 entrypoint.sh를 실행(ENTRYPINT)
ADD ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/bin/bash", "entrypoint.sh"]
- ENTRYPOINT는 도커 컨테이너 실행 시 항상 수행해야 하는 명령어를 지정(웹서버나 데이터 베이스 등의 데몬 실행)
- CMD는 도커 컨테이너 실행 시 다양한 명령어를 지정하는 경우 유용
호스트 환경의 [파일], [디렉터리]를 이미지 안에 복사
COPY index.html /user/sharee/nginx/html
COPY ./runapp.py /
ADD index.html /usr/share/nginx/html
ADD http://eample.com/view/customer.tar.gz /workspace/data/
ADD website.tar.gz /var/www/html
디렉토리 지정
컨테이너 포트 3000 설정
컨테이너 시작시 실행될 명령어로 도커파일 내에서 1회만 사용 가능하다.
CMD [ "yarn", "start" ]
CMD ["node","server.js"]
도커이미지가 생성되기 전에 수행할 쉘 명렁어로 추가적으로 필요한 파일들을 다운로드 받는다.
RUN tar -zxvf nexmes.tar.gz
gzip으로 압축된 tar 아카이브를 현재 디렉토리에 풀기.
$ tar zxvf T.tar.gz
DIR_1/
FILE_1
FILE_2
도커 컨테이너가 기동되어 있는 상태에서 추가적인 커맨드를 더 전달 하고자 할때 사용한다.
docker exec -it [컨테이너이름 또는 컨테이너 아이디] bash