[docker] 개인 도커 레지스트리에 원격 액세스하는 방법은 무엇입니까?

https://github.com/docker/docker-registry 에서 가져온 이미지를 사용하여 개인 도커 레지스트리를 설정하려고합니다.

다음을 실행하면됩니다.
docker run -p 5000:5000 registry

localhost에서만이 리포지토리를 가져 오거나 내보낼 수 있지만 다른 컴퓨터에서 액세스하려고하면 (동일한 LAN의 개인 주소를 사용하여) 오류 메시지와 함께 실패합니다.

*2014/11/03 09:49:04 Error: Invalid registry endpoint https ://10.0.0.26:5000/v1/':
Get https:// 10.0.0.26:5000/v1/_ping: Forbidden. If this private
registry supports only HTTP or HTTPS with an unknown CA certificate,
please add `--insecure-registry 10.0.0.26:5000` to the daemon's
arguments. In the case of HTTPS, if you have access to the registry's
CA certificate, no need for the flag; simply place the CA certificate
at /etc/docker/certs.d/10.0.0.26:5000/ca.crt*

어떤 날 미치게하는 것은 내가 사용 성공적으로 액세스 할 수 있습니다 :를
curl 10.0.0.26:5000
및 / 또는curl 10.0.0.26:5000/v1/search

나는 또한 --insecure-registry깃발을 어디에서 어떻게 통과해야하는지 이해하지 못합니다 .



답변

OK-나는 이것에 대한 해결책을 찾았습니다.

1.12.1 미만의 도커의 경우 :

새 클라이언트 버전은 SSL이없는 개인 레지스트리 작업을 거부합니다.

이 문제를 해결하려면 클라이언트 시스템의 데몬이 안전하지 않은 플래그로 시작되어야합니다.

다음을 입력하십시오.

sudo service docker stop # to stop the service

그리고

sudo docker -d --insecure-registry 10.0.0.26:5000

( 10.0.0.26자신의 IP 주소로 대체하십시오 ).

docker 녀석이 pull / push 명령 줄에이 옵션을 추가 할 것으로 예상합니다.

편집-대체- DOCKER_OPTS/ etc / default / docker … 안의 env 변수에 플래그를 추가 할 수 있습니다.sudo service docker restart

다시 편집하십시오-docker 사람이있는 것 같습니다-곧 수정 될 것입니다 :
https://github.com/docker/docker/pull/8935

Docker 1.12.1의 경우 :

vikas027의 답변 아래를 따르십시오 (centos에 유효)


답변

이것이 CentOS 7.2Docker 1.12.1 (최신 날짜) 에서 저에게 효과적 이었습니다. 내 개인 레지스트리 v2가에서 실행 중 이었으므로 192.168.1.88:5000그에 따라 변경하십시오. 레지스트리가 여러 개인 경우에도 작동합니다.--insecure-registry IP:Port

$ sudo vim /usr/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.88:5000
$
$ sudo systemctl stop docker
$ sudo systemctl daemon-reload
$ systemctl start docker


답변

구성 파일 “/ etc / default / docker”편집

sudo vi / etc / default / docker

파일 끝에 줄 추가

DOCKER_OPTS = “$ DOCKER_OPTS –insecure-registry = 192.168.2.170 : 5000”

(192.168.2.170을 자신의 IP 주소로 대체하십시오)

도커 서비스를 다시 시작하십시오.

sudo 서비스 도커 다시 시작


답변

Docker 서비스 자체가 구성되는 방법에 대해 논의 할 때 다음이 매우 유용하다는 것을 알았습니다. https://docs.docker.com/articles/systemd/

systemctl 명령에 대한이 기사와 함께 https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

“docker pull registry : 2.1.1″에서 얻은 레지스트리 이미지와 함께 Centos 7 기반 컨테이너에서 다음과 같은 일련의 명령을 사용했습니다.

sudo mkdir -p /etc/systemd/system/docker.service.d
cd /etc/systemd/system/docker.service.d
sudo touch override.conf
sudo nano override.conf

그리고 override.conf 안에 다음이 추가되었습니다.

[Service]
ExecStart=
ExecStart=/usr/bin/docker -d -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry 10.2.3.4:5000

첫 번째 비어있는 ExecStart =는 이미 제자리에있는 모든 항목을 지우므로 유지하려는 /usr/lib/systemd/system/docker.service ExecStart = 문에서 모든 항목을 추가해야합니다.

-d (daemon) 옵션을 지정하지 않으면 “Please specify only one -H”오류가 발생합니다.

다음과 같은 일련의 명령을 실행 한 후 제 위치에있는 재정의를 볼 수 있습니다.

sudo systemctl stop docker
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl status docker

docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─override.conf
   Active: active (running) since Thu 2015-09-17 13:37:34 AEST; 7s ago
     Docs: https://docs.docker.com
 Main PID: 5697 (docker)
   CGroup: /system.slice/docker.service
           └─5697 /usr/bin/docker -d -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry 10.2.3.4:5000

참고 : 상태 메시지의 Loaded : 및 Drop-In : 줄에서 제공하는 정보는 기존 docker 데몬이 작동하는 상황을 확인하는 데 유용합니다.

참고 : 추가 단서를 보려면 Loaded : docker.service 파일에서 EnvironmentFile =을 확인하십시오.


답변

확인. 다음은 내가 작동하게하는 방법입니다. docker 1.3.2 이상에서이 오류가 표시되면 다음을 수행하십시오.

이동 /etc/sysconfig/docker

other_args="--insecure-registry 10.0.0.26:5000"

그리고 실행

sudo service docker restart


답변

다음 명령을 사용하여 {YOUR_REGISTRY}를 레지스트리로 바꿉니다.

boot2docker ssh "echo $'EXTRA_ARGS=\"--insecure-registry {YOUR_REGISTRY}\"' | sudo tee -a /var/lib/boot2docker/profile && sudo /etc/init.d/docker restart"


답변

docker.service 파일 편집, -d 플래그 뒤에 –insecure-registry xxxx 추가, docker 다시 시작

이것이 나를 위해 일한 유일한 것입니다. DOCKER_OPTS는 효과가 없었습니다.