Automate Developer Workflows and Increase Productivity with Docker Hub: DockTalk
차례:
Docker 이미지는 응용 프로그램과 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 Docker 컨테이너의 청사진입니다. 컨테이너는 이미지의 런타임 인스턴스입니다.
이 튜토리얼에서는 Dockerfile의 정의, 생성 방법 및 Dockerfile을 사용하여 Docker 이미지를 작성하는 방법에 대해 설명합니다.
Dockerfile이란 무엇입니까
Dockerfile은 이미지를 만들기 위해 사용자가 명령 줄에서 실행할 수있는 모든 명령을 포함하는 텍스트 파일입니다. Docker가 이미지를 빌드하는 데 필요한 모든 지침이 포함되어 있습니다.
Docker 이미지는 실행 가능한 소프트웨어 응용 프로그램을 구성하는 이미지 Dockerfile의 명령어를 나타내는 일련의 파일 시스템 계층으로 구성됩니다.
Docker 파일은 다음 형식을 따릅니다.
# Comment INSTRUCTION arguments
INSTRUCTION
은 대소 문자를 구분하지 않지만 이름에 대문자를 사용하는 것이 관례입니다.
아래는 가장 많이 사용되는 Dockerfile 지침에 대한 간단한 설명이 포함 된 목록입니다.
- ARG- 이 명령어를 사용하면 빌드시 전달할 수있는 변수를 정의 할 수 있습니다. 기본값을 설정할 수도 있습니다. FROM- 새로운 이미지를 만들기위한 기본 이미지. 이 명령은 Dockerfile에서 주석이 아닌 첫 번째 명령이어야합니다. 이 규칙의 유일한 예외는
FROM
인수에 변수를 사용하려는 경우입니다. 이 경우FROM
앞에 하나 이상의ARG
명령어가 올 수 있습니다. LABEL- 설명, 버전, 작성자 등의 이미지에 메타 데이터를 추가하는 데 사용됩니다. 둘 이상의LABEL
지정할 수 있으며 각LABEL
명령어는 키-값 쌍입니다. RUN- 이 명령에 지정된 명령은 빌드 프로세스 중에 실행됩니다. 각RUN
명령어는 현재 이미지 위에 새 레이어를 만듭니다. ADD- 지정된 소스에서 docker 이미지의 지정된 대상으로 파일 및 디렉토리를 복사하는 데 사용됩니다. 소스는 로컬 파일 또는 디렉토리 또는 URL 일 수 있습니다. 소스가 로컬 tar 아카이브 인 경우 Docker 이미지에 자동으로 압축이 풀립니다. 복사-ADD 와 유사하지만 소스는 로컬 파일 또는 디렉토리 일 수 있습니다. ENV- 이 명령을 사용하면 환경 변수를 정의 할 수 있습니다. CMD- 컨테이너를 실행할 때 실행될 명령을 지정하는 데 사용됩니다. Dockerfile에서 하나의CMD
명령 만 사용할 수 있습니다. ENTRYPOINT -CMD
와 유사 하게이 명령은 컨테이너를 실행할 때 어떤 명령이 실행 될지 정의합니다. WORKDIR- 이 지시문은RUN
,CMD
,ENTRYPOINT
,COPY
및ADD
명령어에 대한 현재 작업 디렉토리를 설정합니다. USER- 다음RUN
,CMD
,ENTRYPOINT
,COPY
및ADD
명령어를 실행할 때 사용할 사용자 이름 또는UID
를 설정하십시오. VOLUME- 호스트 시스템 디렉토리를 컨테이너에 마운트 할 수 있습니다. EXPOSE- 컨테이너가 런타임에 청취하는 포트를 지정하는 데 사용됩니다.
파일 및 디렉토리가 이미지에 추가되지 않도록 제외하려면 컨텍스트 디렉토리에
.dockerignore
파일을 작성하십시오.
.dockerignore
의 구문은 Git의
.gitignore
파일 중 하나와 유사합니다.
Dockerfile 지침에 대한 자세한 참조 및 자세한 설명은 공식 Dockerfile 참조 페이지를 참조하십시오.
Dockerfile 만들기
Docker 이미지를 만들 때 가장 일반적인 시나리오는 기존 이미지를 레지스트리 (일반적으로 Docker Hub)에서 가져 와서 기본 이미지에서 변경하려는 사항을 지정하는 것입니다. Docker 이미지를 만들 때 가장 일반적으로 사용되는 기본 이미지는 크기가 작고 RAM에서 실행되도록 최적화 되었기 때문에 Alpine입니다.
이 예에서는 Redis 서버에 대한 Docker 이미지를 만듭니다. 최신 우분투 18.04를 기본 이미지로 사용합니다.
먼저 Dockerfile과 필요한 모든 파일이 포함될 디렉토리를 작성하십시오.
mkdir ~/redis_docker
디렉토리로 이동하여 다음 Dockerfile을 작성하십시오.
cd ~/redis_docker
nano Dockerfile
도커 파일
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
Dockerfile에서 각 줄의 의미를 설명해 보겠습니다.
-
1
행에서 기본 이미지를 정의합니다.3
행에서 시작하는RUN
명령은 apt 색인을 업데이트하고“redis-server”패키지를 설치하고 apt 캐시를 정리합니다. 명령에 사용 된 명령은 Ubuntu 서버에 redis를 설치하는 데 사용하는 명령과 동일합니다.EXPOSE 명령은 redis 서버가 수신하는 포트를 정의합니다. 마지막 행에서CMD
명령을 사용하여 기본 명령을 설정합니다 컨테이너가 실행될 때 실행됩니다.
파일을 저장하고 편집기를 닫으십시오.
이미지 구축
다음 단계는 이미지를 만드는 것입니다. 이렇게하려면 Dockerfile이있는 디렉토리에서 다음 명령을 실행하십시오.
docker build -t linuxize/redis.
-t
옵션은 이미지 이름을 지정하고 선택적으로 'username / imagename: tag'형식의 사용자 이름과 태그를 지정합니다.
빌드 프로세스의 결과는 다음과 같습니다.
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
빌드 프로세스가 완료되면 새 이미지가 이미지 목록에 나열됩니다.
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
컨테이너 실행
이미지가 생성되었으므로 다음을 실행하여 이미지에서 컨테이너를 실행합니다.
docker run -d -p 6379:6379 --name redis linuxize/redis
-d
옵션은 Docker에게 컨테이너를 분리 모드로 실행하도록 지시하고
-p 6379:6379
옵션은 포트 6379를 호스트 시스템에 게시하고
--name redis
옵션은 컨테이너 이름을 지정합니다. 마지막 인수 인
linuxize/redis
는 컨테이너를 실행하는 데 사용되는 이미지의 이름입니다.
컨테이너가 시작되면 다음 명령을 사용하여 실행중인 모든 컨테이너를 나열하십시오.
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
모든 것이 제대로 작동하는지 확인하려면
redis-cli
를 사용하여 도커 컨테이너에 연결해야합니다.
redis-cli ping
redis 서버는
PONG
응답해야합니다.
결론
이 튜토리얼에서는 Dockerfile을 사용하여 이미지를 빌드하는 기본 사항 만 다룹니다. Dockerfile 작성 방법 및 권장 모범 사례에 대한 자세한 내용은 Dockerfile 작성 모범 사례를 참조하십시오.
검토를 통해 이미지를 자동으로 크기 조정 검토 : Robosizer로 이미지를 자동으로 크기 조정

인터넷을 통해 이미지를 보내면 얼마나 고통 스럽습니까? 특히 이메일에서 그들을 계속 축소시켜야합니다. Robosizer는 Windows 트레이에 앉아 이미지를 보낼 때 미리 설정된 사양으로 이미지의 크기를 자동으로 조정하는 무료 앱입니다.
Windows 10의 Paint 3D App으로 멋진 3D 이미지를 만드는 법 Windows 9의 새로운 Paint 3D app은 세 마이크로 소프트 Pait 도구. 초보자도 초보자도 Windows 10에서 3D 이미지를 쉽게 만들 수 있습니다.

Microsoft Paint는 사용자에게 컴퓨터 그래픽을 소개 한 첫 번째 앱이었습니다. 응용 프로그램은 Windows 10 v1703에서
Infogr.am을 사용하여 대화 형 infographics를 쉽게 작성하는 방법

Infogr.am을 사용하여 대화 형 Infographics를 쉽게 만드는 방법에 대해 알아보십시오.