code

Dockerfile에서 로컬 이미지를 기본 이미지로 사용하려면 어떻게해야합니까?

codestyles 2020. 8. 15. 09:17
반응형

Dockerfile에서 로컬 이미지를 기본 이미지로 사용하려면 어떻게해야합니까?


나는 dockerfile에서 일하고 있습니다. 나는 FROM인덱스 이미지를 계속 사용 하고 있다는 것을 깨달았습니다 .

그래서 궁금합니다.

  • 로컬 (사용자 지정) 이미지 중 하나를 인덱스에 포함 FROM하지 않고 기본 ( ) 이미지 pushing로 사용하려면 어떻게해야합니까?

특별한 작업없이 사용할 수 있습니다. 라는 로컬 이미지가 blah있으면 할 수 있습니다 FROM blah. 당신이 경우에 FROM blah당신의 Dockerfile에,하지만 하지 않는다 라는 지역 이미지를 가지고 blah, 다음 도커는 레지스트리에서 당겨하려고합니다.

즉, Dockerfile이을 수행 FROM ubuntu하지만 ubuntu공식 이미지 와 다른 로컬 이미지가있는 경우 이미지가이를 재정의합니다.


확인 됨 : Docker 1.7.0에서 잘 작동합니다.

BTW, 명령을 --pull=true실행할 때 지정하지 마십시오 docker build.

당신은 기본 이미지로 지역 이미지를 사용하려는 경우, 옵션없이하시기 바랍니다 --pull=true, --pull=true항상 이미지의 최신 버전을 끌어 시도합니다.

-https : //github.com/docker/docker/issues/14943


이미지에-문자가있을 수 있습니다. 7.3.1611 태그가있는 centos-base-image라는 로컬 이미지 (로컬 레지스트리가 아님)가 있다고 가정합니다.

docker version 
      Client:
       Version:         1.12.6
       API version:     1.24
       Package version: docker-common-1.12.6-16.el7.centos.x86_64
       Go version:      go1.7.4

      Server:
       Version:         1.12.6
       API version:     1.24
       Package version: docker-common-1.12.6-16.el7.centos.x86_64
       Go version:      go1.7.4

docker images
 REPOSITORY            TAG
 centos-base-image     7.3.1611

Dockerfile

FROM centos-base-image:7.3.1611
RUN yum -y install epel-release libaio bc flex

결과

Sending build context to Docker daemon 315.9 MB
Step 1 : FROM centos-base-image:7.3.1611
  ---> c4d84e86782e
Step 2 : RUN yum -y install epel-release libaio bc flex
  ---> Running in 36d8abd0dad9
...

위의 예에서 FROM로컬 이미지를 가져 오는 경우 사용자 지정 레지스트리 (예 :)에서 이미지를 가져 오기위한 추가 지침을 제공 할 수 있습니다 FROM localhost:5000/my-image:with.tag. 참조 https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registryhttps://docs.docker.com/registry/#tldr

마지막으로, 이름을 제공 할 때 이미지가 확인되지 않는 경우 이미지를 만들 때 이미지에 태그를 추가 해보세요.

이 GitHub 스레드는 이름으로 로컬 이미지를 찾지 못하는 유사한 문제를 설명합니다 .

특정 태그를 생략하면 docker는 "latest"태그가 지정된 이미지를 찾게되므로 : latest 태그로 이미지를 만들거나 FROM을 변경합니다.


다음과 같이 태그뿐만 아니라 해당 태그가있는 저장소도 입력해야합니다.

docker images
REPOSITORY                                TAG                       IMAGE ID            CREATED             SIZE
elixir                                    1.7-centos7_3             e15e6bf57262        20 hours ago        925MB

다음과 같이 참조해야합니다.

elixir:1.7-centos7_3

참고 URL : https://stackoverflow.com/questions/20481225/how-can-i-use-a-local-image-as-the-base-image-with-a-dockerfile

반응형