목차
이미지 구축 소개
docker commit构建镜像
Dockerfile은 일련의 명령어로 구성된 파일입니다. 각 명령어는 Linux의 명령어에 해당합니다. Dockerfile.
기본 이미지 지정
빌드 컨텍스트에서 이미지로 파일을 복사하세요
COPY는 두 가지 형식을 지원합니다: COPY src dest 및 COPY ["src", "dest"]
  4.ADD
차이점은 src가 아카이브 파일(tar, zip, tgz, xz)인 경우 파일이 자동으로 dest
 6.EXPOSE
파일 또는 디렉터리를 다음과 같이 선언합니다. 볼륨
 9.RUN
  10.CMD
  11.ENTRYPOINT
Dockerfile演示
운영 및 유지보수 Docker Docker 이미지를 만드는 방법에는 여러 가지가 있습니다.

Docker 이미지를 만드는 방법에는 여러 가지가 있습니다.

Feb 23, 2022 pm 06:22 PM
docker 거울

Docker 이미지를 생성하는 방법에는 두 가지가 있습니다. 1. "docker commit" 명령을 사용하여 기존 컨테이너를 기반으로 이미지를 수동으로 빌드합니다. 2. Dockerfile을 사용하여 이미지를 자동으로 빌드합니다. Docker 프로그램이 자동으로 이미지를 생성합니다. Dockerfile 빌드 파일의 지침을 읽어보세요.

Docker 이미지를 만드는 방법에는 여러 가지가 있습니다.

이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.

Docker 이미지 웨어하우스에서 다운로드한 이미지가 요구 사항을 충족하지 못하는 경우가 있습니다. 기본 이미지를 기반으로 자체 이미지를 구축할 수 있습니다.

이미지 구축 소개

어떤 상황에서 이미지를 직접 구축해야 합니까?

(1) 자체 개발한 애플리케이션 등 기존 이미지를 찾을 수 없는 경우

(2) 이미지에 특정 기능을 추가해야 하는 경우

Docker에서 이미지를 빌드하는 방법에는 두 가지가 있습니다. code>docker commit 명령과 Dockerfile 빌드 파일docker commit命令与Dockerfile构建文件

docker commit构建镜像

基于已有容器构建镜像主要是通过docker commit

docker commit build image

기존 컨테이너를 기반으로 이미지를 빌드하는 작업은 주로 docker commit 명령을 사용하여 수행됩니다. 새로운 이미지를 구축하세요.
  • dockercommit을 빌드하는 세 가지 주요 단계는 다음과 같습니다.
  • 컨테이너 실행
  • 컨테이너 수정

컨테이너를 새 이미지로 저장

예를 들어 centos 이미지에 vim 편집기를 설치하고 새 이미지

(1) 컨테이너 실행

[root@ken1 docker]# docker run -it centos
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a02a4930cb5d: Pull complete 
Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
Status: Downloaded newer image for centos:latest
로그인 후 복사
(2) vim 편집기 설치

vim 편집기가 설치되지 않았음을 확인

[root@69f501e858a6 /]# vim
bash: vim: command not found
로그인 후 복사
설치

[root@69f501e858a6 /]# yum install vim -y
로그인 후 복사
(3) 새 이미지로 저장

먼저 현재 실행 중인 이미지를 확인하세요.

[root@ken1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
69f501e858a6        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            quizzical_torvalds
로그인 후 복사

커밋을 사용하여 새 이미지
[root@ken1 ~]# docker commit 69f501e858a6 centos-vim
sha256:42083b89a179368bc29a8f40d14f8824990183c8e4b28fd84411d440c26342e5
로그인 후 복사

69f501e858a6은 실행 중인 컨테이너의 ID입니다.

centos-vim은 새 이미지의 이름입니다.

centos-vim 이미지가 있는지 확인하세요.

새 이미지를 다시 시작하고 vim 편집기를 사용할 수 있는지 확인하세요.

vim 편집기를 사용하여 새 이미지를 찾을 수 있습니다.

[root@ken1 ~]# docker run -it centos-vim 
[root@61d090898bad /]# vim
[root@61d090898bad /]# vim test
로그인 후 복사
    위에서는 방법을 보여줍니다. 커밋을 사용하여 새 이미지를 생성하지만 docker는 다음과 같은 이유로 이 방법을 사용하여 이미지를 생성하는 것을 권장하지 않습니다.
  • 이 방법은 수동으로 이미지를 생성하는 방식으로, 컨테이너에 오류가 발생하기 쉽고 비효율적이고 약합니다. 반복성
더 중요한 것은. 사용자는 이미지가 어떻게 생성되는지 알 수 없습니다. 내부에 악성 프로그램이 있는 걸까요?

이미지를 빌드하는 Dockerfile

Dockerfile은 일련의 명령어로 구성된 파일입니다. 각 명령어는 Linux의 명령어에 해당합니다. Dockerfile.

첫 번째 Dockerfike

1단계: 새 디렉터리 만들기

[root@ken1 ~]# mkdir /test
로그인 후 복사

2단계: Dockerfile 작성

이름은 Dockerfile이고 첫 번째 D는 대문자로 시작해야 합니다.

[root@ken1 ~]# cat Dockerfile
FROM centos
RUN yum install vim -y
로그인 후 복사

FROM centos는 centos를 기본으로 사용한다는 의미입니다. image

RUN은 centos에 vim 편집기를 설치하는 것을 의미합니다.

3단계: 이미지 빌드

[root@ken1 ~]# docker build -t centos-vim2 .
로그인 후 복사

-t

뒤에 새 이미지의 태그 이름(태그)을 지정합니다. 마지막 점은 Docker 컨텍스트가 현재임을 나타냅니다. 예배 규칙서. Docker는 기본적으로 빌드 컨텍스트에서 Dockerfile 파일을 검색합니다. -f 매개변수를 통해 Dockerfile의 위치를 ​​지정할 수도 있습니다. 4단계: 이미지 보기 계층 구조가 표시됩니다. Dockerfile의 실행 프로세스인 이미지입니다.

Dcokerfile 공통 지침 1.FROM

기본 이미지 지정

 2. MAINTAINER이미지 작성자를 설정합니다. 모든 문자가 가능합니다

 3.COPY

빌드 컨텍스트에서 이미지로 파일을 복사하세요

COPY는 두 가지 형식을 지원합니다: COPY src dest 및 COPY ["src", "dest"]

참고: src는 복사 가능 동적 빌드 컨텍스트의 파일 또는 디렉터리는 Dockerfile

  4.ADD

과 동일한 디렉터리에만 있을 수 있습니다. 이는 빌드 컨텍스트에서 이미지로 파일을 복사하는 COPY와 유사합니다.

차이점은 src가 아카이브 파일(tar, zip, tgz, xz)인 경우 파일이 자동으로 dest

 5.ENV

다음 명령에서 사용할 수 있는 환경 변수를 설정한다는 것입니다. as :

ENV name ken RUN echo $name

 6.EXPOSE

지정된 컨테이너의 프로세스는 특정 포트를 수신 대기하며 Docker는 해당 포트를 노출할 수 있습니다

 7.VOLUME

파일 또는 디렉터리를 다음과 같이 선언합니다. 볼륨

 8.WORKDIR

이후 RUN, ENTRYPINT, ADD, COPY 지침을 위해 이미지의 현재 작업 디렉터리를 설정합니다.

 9.RUN

컨테이너에서 지정된 명령을 실행합니다

  10.CMD

容器启动时运行指定的命令

dockerfile中可以多个CMD指令,但是只要最后一个生效。CMD可以被docker run之后的参数替换

  11.ENTRYPOINT

设置容器启东市的命令

dockerfile中可以有多个ENTRYPOINT,但是只有最后一个生效。

CMD或者docker run之后的参数会被当做参数传递给ENTERYPOINT.

Dockerfile演示

下面演示一个比较全面的dockerfile

[root@ken1 test]# cat Dockerfile 
#my Dockerfile
FROM busybox
MAINTAINER ken
WORKDIR /ken
RUN touch test
COPY ["ken1","."]
ADD ["wordpress.tar.gz","."]
ENV name "ken"
로그인 후 복사

注意:Dockerfile支持以#开头的注释

构建镜像

[root@ken1 test]# docker build -t myimage .
Sending build context to Docker daemon  4.281MB
Step 1/7 : FROM busybox
 ---> 3a093384ac30
Step 2/7 : MAINTAINER ken
 ---> Running in 2a73a83507ce
Removing intermediate container 2a73a83507ce
 ---> 8c3df9b3d823
Step 3/7 : WORKDIR /ken
 ---> Running in 31c6f9fe2195
Removing intermediate container 31c6f9fe2195
 ---> a458cf986072
Step 4/7 : RUN touch test
 ---> Running in e1b08ebd363c
Removing intermediate container e1b08ebd363c
 ---> 41601920009a
Step 5/7 : COPY ["ken1","."]
 ---> 2ebfa0933fca
Step 6/7 : ADD ["wordpress.tar.gz","."]
 ---> d0ad29d3aa34
Step 7/7 : ENV name "ken"
 ---> Running in fceae6e20e63
Removing intermediate container fceae6e20e63
 ---> 7efe0600e48f
Successfully built 7efe0600e48f
Successfully tagged myimage:latest
로그인 후 복사

查看镜像

运行该镜像

[root@ken1 test]# docker run -it myimage
/ken # ls
ken1       test       wordpress
/ken # echo $name
ken
로그인 후 복사
  •  可以发现当前工作目录为/ken,且自动创建
  • ken1是我们从docker context目录中复制过去的
  • test是使用touch创建的
  • wordpres压缩包已经被自动解压
  • $name为变量值为ken

推荐学习:《docker视频教程

위 내용은 Docker 이미지를 만드는 방법에는 여러 가지가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

중국의 도커 이미지 소스를 변경하는 방법 중국의 도커 이미지 소스를 변경하는 방법 Apr 15, 2025 am 11:30 AM

국내 거울 소스로 전환 할 수 있습니다. 단계는 다음과 같습니다. 1. 구성 파일 /etc/docker/daemon.json 편집 및 미러 소스 주소를 추가하십시오. 2. 저장 및 종료 후 Docker Service Sudo SystemCTL Docker를 다시 시작하여 이미지 다운로드 속도 및 안정성을 향상시킵니다.

Docker에서 거울을 만드는 방법 Docker에서 거울을 만드는 방법 Apr 15, 2025 am 11:27 AM

Docker 이미지 생성 단계 : 빌드 지침이 포함 된 Dockerfile을 작성하십시오. Docker 빌드 명령을 사용하여 터미널에 이미지를 빌드하십시오. Docker 태그 명령을 사용하여 이미지를 태그하고 이름과 태그를 지정하십시오.

Docker Desktop을 사용하는 방법 Docker Desktop을 사용하는 방법 Apr 15, 2025 am 11:45 AM

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

Docker 버전을 읽는 방법 Docker 버전을 읽는 방법 Apr 15, 2025 am 11:51 AM

Docker 버전을 얻으려면 다음 단계를 수행 할 수 있습니다. Docker 명령 "Docker -version"을 실행하여 클라이언트 및 서버 버전을 볼 수 있습니다. Mac 또는 Windows의 경우 Docker Desktop GUI의 버전 탭 또는 Aff Docker Desktop 메뉴를 통해 버전 정보를 볼 수도 있습니다.

Docker의 이미지를 업데이트하는 방법 Docker의 이미지를 업데이트하는 방법 Apr 15, 2025 pm 12:03 PM

Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

Docker에서 로그를 보는 방법 Docker에서 로그를 보는 방법 Apr 15, 2025 pm 12:24 PM

Docker Logs를 보는 방법에는 다음이 포함됩니다. Docker Logs 명령 사용 : Docker Logs Container_name Docker Exec 명령을 사용하여 RUN /BIN /SH를 사용하여 로그 파일을 봅니다. cat /var/log/container_name.log docker-compose logs docker compose의 명령 : docker-compose -f docker-com 사용

Docker의 개인 저장소 구축 방법 Docker의 개인 저장소 구축 방법 Apr 15, 2025 am 11:06 AM

Docker Private Repositories를 구축하여 컨테이너 이미지를 안전하게 저장하고 관리하여 엄격한 제어 및 보안을 제공 할 수 있습니다. 단계에는 리포지토리 생성, 액세스 부여, 저장소 배포, 이미지 밀기 및 이미지를 당기는 단계가 포함됩니다. 보안, 버전 제어, 네트워크 트래픽 감소 및 사용자 정의가 장점이 있습니다.

Docker LNMP에 전화하는 방법 Docker LNMP에 전화하는 방법 Apr 15, 2025 am 11:15 AM

Docker LNMP 컨테이너 호출 단계 : 컨테이너 실행 : Docker Run -D-- 이름 LNMP -Container -P 80:80 -P 443 : 443 LNMP -Stack 컨테이너 IP를 얻으려면 Docker LNMP -Container | grep iPaddress 액세스 웹 사이트 : http : // & lt; 컨테이너 ip & gt;/index.phpssh 액세스 : docker exec -it lnmp -container bash access mysql : mysql -u roo

See all articles