dockerfile의 ARG 명령 및 LABEL 명령

4262 단어 Docker초학자idea

개시하다


할머니를 물리치기 위해 리눅스 씨와 AWS 씨는 사이가 좋았고, 새로운 무대에 오르기 위해 드디어 도커 씨를 만나기로 했습니다.도커와 관계를 잘 맺어 컨테이너 시스템의 구조를 이해하고 이를 타도하는 조사를 진행한다.
이번에는 도커가 컨테이너를 개발해 공장 구축의 기초 부분을 이해했다.

개요


■ dockerfile 명령
■ARG
■LABEL
정리했어요!(^_-)-☆

■ dockerfile 명령


명령
명령하다
의향
FROM 이미지:레이블
컨테이너의 기본 이미지
RUN 명령
FROM의 기본 이미지에서 실행되는 명령
ADD 소스 컨테이너 내 대상
컨테이너에 소스를 복사하는 받는 사람
ENTRYPOINT
컨테이너 실행 파일 지정하기
CMD
컨테이너를 실행할 때 실행할 명령을 지정합니다.
ENV key=Value
환경 변수 설정
EXPOSE port
공개 포트 설정
USER 사용자 이름
RUN, CMD, ENTRYPOINT의 실행 사용자 지정
VOLUME["/path"]
공유 볼륨 마운트
WORKDIR/path
RUN, CMD, ENTRYPOINT, COPY, ADD의 작업 디렉토리 지정
ARG<이름>[=<기본값>]
구축할 때의 매개 변수 정의 - bid-arg<매개 변수>=<값>
LABEL key=value key=value
이미지 메타데이터에 태그 추가
MAINTAINER<이름>
이미지 메타데이터에 제작자 추가
규칙이 많아요!('_')

■ARG


ARG 명령은 구축할 때 작업자가 docker build 명령에 사용할 변수를 지정합니다.
ARG 명령은 빌드할 때 수행할 수 있는 변수를 정의합니다.
이것은 케이스에 전달되는 환경 변수가 아니라 dockerbuild 명령의 매개 변수로 전달되는 기능을 가지고 있습니다.
dockerfile
ARG 名前(=デフォルト値)
구문 시 지정된 변수
$ docker build --build-arg 変数名=値 ...
Docker file에 지정된 빌드 매개변수가 정의되어 있지 않으면 빌드 처리를 수행할 수 없으므로 경고 메시지가 출력됩니다.
One or more build-args were not consumed, failing build.
정의된 ARG의 변수는 dockerfile 내의 ADD, COPY, WORKDIR, RUN, USER 및 ENV 명령에 사용할 수 있습니다.
FROM busybox
ARG hoge
RUN echo $hoge
↓는 ARG 명령에 지정된 변수를 구성할 때 값을 지정하고 실행합니다.
docker build ./ --build-arg hoge=helloworld
구축 시 값을 지정하지 않더라도 ARG 명령을 사용하여 기본값을 설정하여 생략할 수 있습니다.
dockerfile
FROM busybox
ARG hoge="helloworld"
RUN echo $hoge
dockerfile에서 기본값을 지정했지만 구축할 때 다른 값을 지정하면 구축할 때 인자가 우선됩니다.
FROM ubuntu
ARG CONT_IMG_VER
ENV CONT_IMG_VER ${CONT_IMG_VER:-v1.0.0}
RUN echo $CONT_IMG_VER
$ docker build --build-arg CONT_IMG_VER=v2.0.1 Dockerfile
→파라미터를 설정한 경우 v2.0.1.지정되지 않은 경우 v1.0.0.
FROM 이전에 ARG 명령으로 변수를 지정하면 FROM 명령까지 ARG 변수가 실행되며, FROM 이후의 명령에서는 원래 ARG 변수를 사용할 수 없습니다.
따라서 FROM 이후 명령을 통해 ARG로 변수를 설정하려면 ARG 명령을 지정해야 한다.
dockerfile
ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version
구성 단계에서 여러 변수를 지정할 수도 있습니다.
여러 변수를 지정할 수도 있습니다.
FROM busybox
ARG user1=someuser
ARG buildno=1 
다중 빌드 단계에서 dockerfile을 만들 때 ARG를 지정해야 합니다.
FROM busybox
ARG SETTINGS
RUN ./run/setup $SETTINGS

FROM busybox
ARG SETTINGS
RUN ./run/other $SETTINGS
https://matsuand.github.io/docs.docker.jp.onthefly/develop/develop-images/multistage-build/

■LABEL


LABEL 명령은 이미지에 메타데이터를 추가합니다.LABEL에서는 주요 가치 쌍에 대해 기술합니다.값은 명령줄 처리와 동일하게 지정되며 공백에 큰따옴표나 줄 바꿈에 백슬래시를 사용합니다.
설명 형식
LABEL <key>=<value> <key>=<value> <key>=<value> ...
または
LABEL <key>=<value>
LABEL <key>=<value>
LABEL <key>=<value>
한 줄 한 줄 그릴 수도 있고.
LABEL "com.example.vendor"="ACME Incorporated"
LABEL version="1.0"
LABEL description="This text illustrates \
that label-values can span multiple lines."
한 줄에 써도 돼요.
LABEL multi.label1="value1" multi.label2="value2" other="value3"
docker inspect 명령을 사용하여 이미지 태그를 확인할 수 있습니다.
확인 레이블
docker inspect [オプション] イメージ(コンテナ)

총결산


회사에서 접대용 테이블을 조립했는데 설명서를 보지 않고 발을 안쪽에 고정시키면 완성됐는데, 최근에는 테이블 다리가 아예 구부러진 것처럼 느껴져 외부에 고정돼 있었다.
꼬불꼬불한 테이블 위에서 필사적으로 움직이지 않는 사장님은 버티면서 손님과 이야기하는 것 같았는데 차가 쏟아지지 않아서 정말 다행이라고 생각했어요.

좋은 웹페이지 즐겨찾기