[docker] 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-registry 및 https://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