[docker] 기본 Docker 레지스트리를 docker.io에서 개인 레지스트리로 변경하는 방법은 무엇입니까?

기본적으로 다음 명령을 실행하면 :

sudo docker pull ruby:2.2.1

기본적으로 docker.io 공식 사이트에서 가져옵니다.

Pulling repository docker.io/library/ruby

내 개인 레지스트리로 어떻게 변경합니까? 즉, 내가 발행하면

sudo docker pull ruby:2.2.1

내 개인 레지스트리에서 가져 오며 출력은 다음과 같습니다.

Pulling repository my_private.registry:port/library/ruby



답변

업데이트 : 귀하의 의견에 따라 현재 기본 레지스트리를 변경할 수 없습니다 . 자세한 내용은 이 문제 를 참조하십시오.

호스트와 포트를 자신의 것으로 대체하여이를 수행 할 수 있어야합니다.

docker pull localhost:5000/registry-demo

서버가 원격이거나 인증이있는 경우 다음을 사용하여 서버에 로그인해야 할 수 있습니다.

docker login https://<YOUR-DOMAIN>:8080

그런 다음 실행 :

docker pull <YOUR-DOMAIN>:8080/test-image


답변

이것이 실제로 가능하지만 정품 Docker CE 또는 EE 버전을 사용하지 않는 것으로 나타났습니다 .

‘–add-registry’플래그와 함께 Red Hat의 docker 포크를 사용하거나 자신의 하드 코딩 된 기본 레지스트리 네임 스페이스 / 인덱스를 사용하도록 수정 된 registry / config.go를 사용하여 소스에서 Docker를 직접 빌드 할 수 있습니다.


답변

fedora distro를 사용하는 경우 파일을 변경할 수 있습니다.

/etc/containers/registries.conf

도메인 docker.io 추가


답변

커뮤니티 내에서 생성되는 조각화로 인해 지원되지 않는 것 같습니다 (즉, 두 명의 사용자가 다른 이미지를 가져옴 ubuntu:latest). 이미지 이름 앞에 호스트를 추가하기 만하면됩니다. 토론에 참여하려면 이 github 문제 를 참조하십시오 .

(참고로, 이것은 의견이있는 의견이 아니라 언급 된 github 문제에서 따를 수있는 토론의 매우 짧은 요약 일뿐입니다.)


답변

/etc/docker/daemon.json에 다음 옵션을 추가하려고했습니다. (CentOS7을 사용했습니다)

"add-registry": ["192.168.100.100:5001"],
"block-registry": ["docker.io"],

그 후 docker 데몬을 다시 시작했습니다. 그리고 docker.io 없이도 작동합니다. 이 사람이 도움이 되길 바랍니다.


답변

Docker 공식 입장은 문제 # 11815에 설명되어 있습니다 .

문제 11815 : pull 명령에 사용되는 기본 레지스트리 지정 허용

해결:

앞서 지적한 것처럼 (# 11815), 이것은 네임 스페이스를 조각화 하고 커뮤니티를 상당히 손상시켜 도커 파일을 더 이상 이식 할 수 없게 만듭니다.

[관리자]는 이러한 이유로 이것을 닫을 것입니다.

Red Hat에는이를 허용하는 특정 구현이있었습니다 (anwser 참조, 그러나 Docker 업스트림 프로젝트 에서 거부 됨). RHEL / CentOS 7에 --add-registry설정된 인수에 의존했습니다 /etc/containers/registries.conf.


답변

이전 에는 Ubuntu 14:04에서 작동 하고 Ubuntu 15:04에서 몇 가지 문제DOCKER_OPTS있는 /etc/default/docker구성 파일을 사용하여이 작업을 수행 할 수 있었습니다 . 이 문제가 해결되었는지 확실하지 않습니다.

아래 줄 /etc/default/docker은 docker 데몬을 실행하는 호스트 의 파일로 이동해야합니다 . 개인 레지스트리에 대한 변경 사항은 로컬 네트워크에 설치됩니다. 참고 :이 변경 사항과 함께 docker 서비스를 다시 시작해야합니다.

DOCKER_OPTS="--insecure-registry <priv registry hostname/ip>:<port>"