Dockfile 에 대한 쓰기

4393 단어 Docker
Dockerfile 은 미 러 를 만 드 는 파일 을 사용자 정의 하 는 데 사 용 됩 니 다.
Dockerfile:
FROM nginx
RUN echo '         nginx  ' > /usr/share/nginx/html/index.html
  • FEOM: 어떤 미 러 를 기반 으로 사용자 정의 할 지 지정 합 니 다
  • RUN: 실행 명령, 두 가지 형식
  • RUN
  • RUN ["test.php", "dev", "offline"] 등가 test.php dev offline

  • docker 는 줄 마다 한 층 씩 새로 만 듭 니 다. 너무 많은 층 을 피하 기 위해 && 명령 을 한 줄 로 줄 입 니 다.
    FROM centos
    RUN yum install wget
    RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
    RUN tar -xvf redis.tar.gz
    
            3    。        :
    FROM centos
    RUN yum install wget \
        && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
        && tar -xvf redis.tar.gz
    
    [root@localhost dockerdir]# docker build -t imagetest:test .
    Sending build context to Docker daemon  2.048kB
    Step 1/2 : FROM nginx
     ---> 8cf1bfb43ff5
    Step 2/2 : RUN echo '         nginx  ' > /usr/share/nginx/html/index.html
     ---> Using cache
     ---> 2611d7938c46
    Successfully built 2611d7938c46
    Successfully tagged imagetest:test
    
    [root@localhost dockerdir]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    imagetest           test                2611d7938c46        2 hours ago         132MB
    twilight/nginx      ali                 378d7ca4a813        3 hours ago         229MB
    mysystem            tags                1c174e9fbdee        3 hours ago         64.2MB
    ubuntu              18.04               2eb2d388e1a2        6 days ago          64.2MB
    nginx               latest              8cf1bfb43ff5        9 days ago          132MB
    training/webapp     latest              6fae60ef3446        5 years ago         349MB
    [root@localhost dockerdir]# 
    
    docker build 컨 텍스트 경로 의 모든 파일 을 엔진 에 포장 하여 보 낼 수 있 기 때문에 컨 텍스트 경 로 는 쓸모없는 파일 을 넣 지 못 하고 실행 과정 이 느 릴 수 있 습 니 다.
    지령
  • COPY [--chown=:] ["",... ""]: 목적 경로 가 존재 하지 않 으 면 자동 으로 생 성 됩 니 다.경로 지원 어댑터.
  • ADD 용법 은 COPY 과 일치 합 니 다. 다른 점 은 원본 파일 이 gzip, bzip2, xz 형식 으로 자동 으로 압축 을 풀 고 대상 경로 로 복 사 됩 니 다.
  • 대상 경로 가 파일 로 지정 되면 이 파일 을 덮어 씁 니 다 (이 파일 에 내용 이 있 더 라 도). 존재 하지 않 으 면 새 파일 을 만 듭 니 다
  • 대상 경로 가 디 렉 터 리 이지 만 이 디 렉 터 리 가 존재 하지 않 으 면 docker 는 자동 으로 디 렉 터 리 를 만 듭 니 다
  • CMD ["","","",...] 또는 CMD 용기 구축 완료 후 실행 하 는 명령
  • 여러 개의 CMD 를 쓸 수 있 지만 마지막 하나만 효력 이 발생 한다
  • Dockerfile 의 CMD 명령 은 docker run -it ubuntu 의 명령 으로 덮어 쓸 수 있 습 니 다.
  • RUN 은 build 에서 실행 되 는 시기 이 고 CMD 는 docker run 에서 실행 되 는 시기
  • ENTRYPOINT ["","","",...] 또는 ENTRYPOINT CMD 와 효과 가 많 지 않 지만 항상 실행 되 거나 교체 된다.
  • ENTRYPOINT 명령 이 여러 개 있 으 면 마지막 하나만 효력 이 발생 한다
  • 정의 ENTRYPOINT ["nginx", "-c"] 하면 docker run 뒤에 있 는 매개 변 수 는 nginx -c 뒤에 추 가 됩 니 다
  • 만약 ENTRYPOINT ["nginx", "-c"]CMD [""] 을 동시에 사용한다 면 CMD 의 내용 도 ENTRYPOINT 의 뒤에 추 가 될 것 이다
  • ENTRYPOINT 의 내용 을 지정 --entrypoint 통 해 덮어 쓰기
  • ENV 또는 ENV = =: 정 의 된 환경 변 수 는 build 와 run 에서 $var 형식 으로 참조 할 수 있 습 니 다
  • ARG 는 ENV 역할 과 같 지만 Dockerfile 내 에서 만 효력 이 발생 하여 docker build --build-arg key=value 에서 덮어 쓸 수 있다
  • .
  • VOLUME ["", ""...] 데이터 볼 륨 자동 마 운 트
  • EXPOSE [...] 성명 포트, 설정 이 편리 합 니 다
  • WORKDIR 디 렉 터 리 는 이미 존재 해 야 합 니 다. 미 러 를 구축 하 는 모든 층 에 이 디 렉 터 리 가 존재 합 니 다.
  • USER [:] 전환 사용자
  • ONBUILD 이번 에는 실행 되 지 않 지만 새로운 Dockerfile 이 이 미 러 를 인용 하면 ONBUILD 가 지정 한 명령
  • 을 수행 합 니 다.
    참고 자료
    https://www.runoob.com/docker/docker-dockerfile.html https://blog.csdn.net/shunfa888/article/details/79373840

    좋은 웹페이지 즐겨찾기