도커 파일로 로컬 이미지를 기본 이미지로 사용하려면 어떻게 해야 합니까?
도커 파일 작업 중입니다.지금 막 깨달았어요 제가 사용법을FROM
전체적으로 색인화된 이미지를 가지고 있습니다.
그래서 궁금해요.
- 로컬(사용자 지정) 이미지 중 하나를 기본 이미지로 사용하려면 어떻게 해야 합니까?
FROM
) 없는 이미지pushing
그것을 지수로?
특별한 일을 하지 않아도 사용할 수 있습니다.로컬 이미지가 있는 경우blah
할수있습니다FROM blah
.네가 한다면.FROM blah
Docker 파일에는 로컬 이미지가 없습니다.blah
, 그러면 도커가 등록부에서 빼내려고 할 겁니다
즉, 만약 도커 파일이FROM ubuntu
, 하지만 당신은 지역 이미지를 가지고 있습니다.ubuntu
공식적인 것과는 다르게, 당신의 이미지는 그것을 무시할 것입니다.
미래에 이 문제에 직면한 사람들을 위해, 당신이 당신의 지역에 이미지를 가지고 있지만,docker build
여전히 도커 허브에서 이미지를 가져오려고 합니다. 문제는 아키텍처 유형이 다르다는 것일 수 있습니다.
이미지의 아키텍처를 확인할 수 있습니다.
docker inspect --format='{{.Os}}/{{.Architecture}}' IMAGE_NAME
이제 너의 안에Dockerfile
바꾸다FROM IMAGE_NAME
와 비슷한 정도로FROM --platform=linux/amd64 IMAGE_NAME
그리고 도커는 이제 지역 이미지를 사용할 것입니다.
확인: 도커 1.7.0에서 잘 작동합니다.
지정 안 함--pull=true
실행 시docker build
지휘권을
도커 파일에서 FROM을 사용하여 로컬에서 작성된 참조 이미지의 이 스레드에서:
로컬 이미지를 기본 이미지로 사용하려면 옵션 없이 전달
--pull=true
--pull=true
는 항상 새로운 버전의 이미지를 끌어오기를 시도합니다.
나는 비활성화해야만 했습니다.BUILDKIT
로컬 이미지를 사용할 수 있도록 M1이 있는 맥에서.당신은 그것을 할 수 있습니다.DOCKER_BUILDKIT
환경 변수를 0으로 설정합니다.
DOCKER_BUILDKIT=0 docker build -t YOUR_TAG --pull=false .
이미지에 - 캐릭터를 가질 수 있습니다.태그 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
도커파일
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/ #http://from a different-situde 및 https://docs.docker.com/registry/ #http:////tml 참조
마지막으로, 이름을 제공할 때 이미지가 해결되지 않는 경우 이미지를 생성할 때 태그를 추가해 보십시오.
이 GitHub 스레드는 이름으로 로컬 이미지를 찾지 못하는 유사한 문제를 설명합니다.
특정 태그를 생략하면 도커가 "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
이건 바보같은 해결책이지만...이미지에 이름이 있는 경우blah
와 아이디b2d34289abae
, 그러면 당신은 그것을 바꿀 수 있습니다.FROM
에 줄을 서세요.
FROM blah
로.
FROM b2d34289abae
는 는 ID 을 는 을 docker images
하지만 현지 테스트 같은 경우에는 일시적인 해결책으로 취급하고 싶습니다.
M1 mac에서는 이미지 플랫폼과 name:tag를 모두 지정해야 했습니다.
FROM --platform=linux/amd64 myimagename:2.0.0.a
예.
- build가 플랫폼과 함께 경우 가 과 .
docker build . --tag chrome-nodejs-java --platform=linux/amd64
,
에을야다 뒤에 .FROM
- 에 가 있는 경우
docker images
정름및가우는그음(그)우음정 )latest
), 태그를 를 해야 해야 를 .
훨씬 더 간단한 방법은 IMAGE ID를 사용하는 것일 수 있습니다.
FROM c08a03a92df0
여하튼 사용docker images
자주 ㅜㅜ
이미지의 플랫폼은 나열하지 않습니다. 용도는그로로그rte로 docker inspect imagenameOrID
아니면docker inspect --format='{{.Os}}/{{.Architecture}}' imagenameOrID
에는 제 이미지 이름에 대해 ( 에 에 가 에는 가 에 ).latest
, 태그 없이 구축됨)을 사용했지만 이미지 이름: 2.0.0.a에서 작동했습니다.
다른 말로 하자면, 만약docker images
태그가 있는 이미지가 없습니다.latest
, 그러면 사용할 수 없습니다.FROM
버전 태그 그이정이그tc전정n
@jpetazo, @Anuj Bansal, @SomeGuy의 높은 투표율에 감사드립니다.
OS 사용자의 MAC OS m1 를 하는 가 할 를 를 추가해야 했습니다.--platform=linux/amd64
기본 이미지 앞에 매개 변수를 지정합니다.
FROM --platform=linux/amd64 baseImage:tag
M1 칩을 사용하는 사용자의 경우 로컬 이미지의 플랫폼이 타겟 도커 파일과 다를 경우 문제가 발생할 수 있습니다.경우으로 베이스 제 M1로본를한음다고를do다ne를음제는iehety,'eedmnmdt한FROM
플랫폼을 사용해 만든 이미지에서.linux/amd64
방금 엔진 버전 20.10.14의 M1 맥에서 이것을 발견했습니다.그것은 명백하지 않았습니다.docker build --help
지나가다 보면, --pull=false
나를 위해 일했습니다.
우리들의/etc/docker/daemon.json
선언하는 대사가 있었습니다.
"disable-legacy-registry" : true,
그 전화를 걸었을 때, 지역 등록부는 접속을 거부하고 있었습니다.
제거하면 됩니다.
기본 이미지 플랫폼 유형을 가리키지 않았기 때문에 발생하는 최신 도커 버전의 경우 다음을 수행해야 합니다.
docker build --platform=${DESIRED_PLATFORM} -t ${TAG} .
언급URL : https://stackoverflow.com/questions/20481225/how-can-i-use-a-local-image-as-the-base-image-with-a-dockerfile
'source' 카테고리의 다른 글
WPS 로그인 숨기기 플러그인을 사용한 후 WordPress에서 잠깁니다. (0) | 2023.09.13 |
---|---|
XOR의 합산을 위한 직접 공식 (0) | 2023.09.13 |
'ts-node'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2023.09.13 |
SQL을 사용하여 오라클 스키마 간에 데이터 복사 (0) | 2023.09.13 |
현재 응용 프로그램을 실행 중인 Android API 수준의 전화 받기 (0) | 2023.09.13 |