source

도커에 안전하지 않은 레지스트리 추가

nicesource 2023. 8. 12. 10:24
반응형

도커에 안전하지 않은 레지스트리 추가

CentOS에서 도커 1.12를 실행하고 있습니다.보안되지 않은 레지스트리를 추가하려고 하는데 설명서에 언급된 것들이 작동하지 않습니다.시스템은 다음을 사용합니다.systemd그래서 제가 만든 것은/etc/systemd/system/docker.service.d/50-insecure-registry.conf파일.

$ cat /etc/systemd/system/docker.service.d/50-insecure-registry.conf
[Service]
Environment='DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"'

데몬을 로드하고 도커 서비스를 다시 시작하면 systemd에 환경 변수가 있음이 표시됩니다.

$ sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"

하지만 내가 달릴 때docker info안전하지 않은 레지스트리가 추가되지 않았습니다.

$ docker info
........
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
    127.0.0.0/8

이미지 푸시 대상hostname.cloudapp.net으로 실패함

Pushing application     (hostname.cloudapp.net:5000/application:latest)...
The push refers to a repository     [hostname.cloudapp.net:5000/mozart_application]
ERROR: Get https://hostname.cloudapp.net:5000/v1/_ping: http: server gave HTTP response to HTTPS client

뭔가 할 수 있는 일이 있습니까?내가 뭘 빼놓았나요?

갱신하다

파일을 추가하여 문제 해결/etc/docker/daemon.json다음과 같은 내용으로

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

그런 다음 도커를 다시 시작합니다.

sudo systemctl daemon-reload
sudo systemctl restart docker

그 안전하지 않은 레지스트리 이후에hostname.cloudapp.net:5000작동하다.

(질문의 답변 복사)

안전하지 않은 도커 레지스트리를 추가하려면 파일을 추가합니다./etc/docker/daemon.json다음 내용을 포함합니다.

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

도커를 다시 시작합니다.

작성 중/etc/docker/daemon.json파일을 작성하고 아래 내용을 추가한 다음 Cent에서 도커 재시작합니다.OS 7은 이 문제를 해결했습니다.

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

솔루션을 통한 솔루션을(를)/etc/docker/daemon.jsonUbuntu에서 파일이 작동하지 않았습니다.

Ubuntu에서 Docker 데몬에 명령줄 옵션을 제공하여 Docker의 안전하지 않은 레지스트리를 구성할 수 있었습니다./etc/default/docker파일, 예:

# /etc/default/docker    
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"

동일한 방법으로 도커 이미지 및 볼륨 스토리지, 기본 DNS 서버 등에 대한 사용자 지정 디렉토리를 구성할 수 있습니다.

이제 Docker 데몬이 다시 시작된 후(실행 후)sudo service docker restart), 실행docker info표시:

Insecure Registries:
  a.example.com
  b.example.com
  127.0.0.0/8

Mac용

MacOS 데스크톱에서

  • 상단의 메뉴 모음에서 도커 "고래" 아이콘을 클릭
  • 선택한다."Preferences..."Docker 바탕 화면 설정 창을 띄웁니다.
  • 다음을 선택합니다."Docker Engine"
  • 여기에서 현재 사용 중인 내용의 JSON 발췌본이 표시됩니다.daemon.json파일.
  • JSON 객체의 가장 바깥쪽 수준에 다음에 대한 선을 추가합니다.insecure-registries제공합니다.ip.address.for.registry:port상응하는 값으로
  • 딸깍하는 소리Apply and Restart

다음은 이 프로세스의 시각적 내용입니다.

Docker Desktop Settings window from Docker Engine section

이제 다음과 같은 명령을 실행할 수 있습니다.

$ docker build -t mysimpleapp .
$ docker tag mysimpleapp 172.16.0.65:30350/simple
$ docker push 172.160.65:30350/simple
> Using default tag: latest
The push refers to repository [172.16.0.65:30350/simple]
f5d693d2f2fe: Pushed 
66d5de1853fa: Pushed 
f317cd97a2b5: Pushed 
d517aeda4ce5: Pushed 
199d178b1757: Pushed 
latest: digest: sha256:edde4d73130ef9c88d3d273ab4a727e0f8762f0d65802afb01f46eb6877d087c size: 2425

Ubuntu 20.04의 나에게 더 나은 방법은 systemd 서비스를 편집하는 것입니다.

/lib/systemd/system/docker.service

[Service](서비스) 뒤에 여기에 줄 추가

Environment=DOCKER_OPTS=--insecure-registry=10.0.0.10:6000

또는 sed를 사용하여 2개의 명령을 통해 자동으로 수행할 수 있습니다. [Service] 뒤에 줄을 추가합니다.

sed 's/\[Service\]/\[Service\] \nEnvironment=DOCKER_OPTS=--insecure-registry=10.0.0.10:6000/' /lib/systemd/system/docker.service > /lib/systemd/system/docker.service.tmp
mv /lib/systemd/system/docker.service.tmp /lib/systemd/system/docker.service

Mac에서. 소스

  1. 에 가다~/Library/Containers/com.docker.docker/Data/database
  2. .git 저장소(.git)가 있습니다.
  3. HEAD로 재설정git reset --hard
  4. 이제 당신은com.docker.driver.amd64-linux폴더
  5. 안으로 들어가기~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker
  6. 저기 당신의 것daemon.json파일

아마존 리눅스 2에서 안전하지 않은 레지스트리를 추가하려는 사람: /etc/sysconfig/docker에서 설정을 변경한 다음 도커 데몬을 다시 시작해야 합니다. 내 /etc/sysconfig/docker는 다음과 같습니다.

# The max number of open files for the daemon itself, and all
# running containers.  The default value of 1048576 mirrors the value
# used by the systemd service unit.
DAEMON_MAXFILES=1048576

# Additional startup options for the Docker daemon, for example:
# OPTIONS="--ip-forward=true --iptables=true"
# By default we limit the number of open files per container
OPTIONS="--default-ulimit nofile=1024:4096 --insecure-registry yourinsecureregistryhostname:port"

# How many seconds the sysvinit script waits for the pidfile to appear
# when starting the daemon.
DAEMON_PIDFILE_TIMEOUT=10

공식적인 도커 스크립트("편의 스크립트")를 통해 도커가 설치된 라즈비안/라스베리 파이에서 이 작업을 수행하는 데 약간의 문제가 있었습니다.로 인해 이 어떤이인구다있합니에 있어야 ./home/pi/.config/docker/daemon.json서 그렇게 되어 있는지 /서디그렇구성왜있어는전모르습다니겠혀지되.

은 이은대에 입니다./etc/docker/daemon.json 모든 곳에서 됨 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜ

저에게 있어 해결책은 여기에 레지스트리를 추가하는 것이었습니다.

/etc/sysconfig/syser-registics

DOCKER_REGISTRIES=''
DOCKER_EXTRA_REGISTRIES='--insecure-registry  b.example.com'

아마존 리눅스에서 로컬 내부 JFrog Docker Private Registry를 설정한 후 유사한 문제가 발생했습니다.

문제를 해결하기 위해 수행한 작업은 다음과 같습니다.

"--insecure-registry xx.xx.xx.xx가 추가되었습니다./etc/sysconfig/docker 파일의 OPTIONS 변수를 수정하여 xx:8081":

OPTIONS="--default-ulimit nofile=1024:40961 --insecure-registry hostname:8081"

그런 다음 도커를 다시 시작했습니다.

그런 다음 다음을 사용하여 로컬 도커 레지스트리에 로그인할 수 있었습니다.

docker login -u admin -p password hostname:8081

있는 은 이config.json 파일과 .여기서registry.myprivate.com저에게 문제를 일으켰던 것입니다.

 {
    "auths": {
            "https://index.docker.io/v1/": {
                    "auth": "xxxxxxxxxxxxxxxxxxxx=="
            },
            "registry.myprivate.com": {
                    "auth": "xxxxxxxxxxxxxxxxxxxx="
            }
    },
    "HttpHeaders": {
            "User-Agent": "Docker-Client/19.03.8 (linux)"
    },
    "insecure-registries" : ["registry.myprivate.com"]
}

를 작성/etc/docker/daemon.json 입니다.

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

개인 도커 레지스트리 생성에 대한 자세한 설명은 블로그 기사를 참조하십시오. https://geekdosage.com/how-to-create-a-private-docker-registry-in-ubuntu-20-04/

언급URL : https://stackoverflow.com/questions/42211380/add-insecure-registry-to-docker

반응형