언젠가 Docker daemon에 자신이 만든 Registry를 등록할만한 일이 있을지도 모른다. 하지만 슬프게도 바로 되지 않을 수도 있는데...
아마 docker login
을 시도하면 아래와 같은 에러가 나올 때가 있다. (Registry가 HTTPS가 아닐 때..)
Error response from daemon: Get https://registry.gitlab.your.path/v2/: dial tcp 123.123.123.123:443: connect: connection refused
HTTPS가 아닌 Registry 서버는 로컬에 있는 게 아니라면 별도의 설정을 해줘야 한다. (대체? 저 에러 메세지로만 어떻게 HTTPS 문제라고 생각할 수 있겠는가...)
여러가지 자료를 찾아보면 /etc/init.d/docker
를 수정하라는 사람도 있고, /etc/docker/daemon.json
을 수정하라는 사람도 있다. 참고로 이 파일들은 docker daemon을 실행하는데 중요한 파일들이고 수정을 잘못 한다면, 아래와 같은 오류를 볼 수도 있을 것이다.
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2020-12-09 14:33:41 KST; 56s ago
Docs: https://docs.docker.com
Process: 4986 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 4986 (code=exited, status=1/FAILURE)
12월 09 14:33:41 main systemd[1]: Stopped Docker Application Container Engine.
12월 09 14:33:41 main systemd[1]: docker.service: Start request repeated too quickly.
12월 09 14:33:41 main systemd[1]: docker.service: Failed with result 'exit-code'.
12월 09 14:33:41 main systemd[1]: Failed to start Docker Application Container Engine.
12월 09 14:33:42 main systemd[1]: docker.service: Start request repeated too quickly.
12월 09 14:33:42 main systemd[1]: docker.service: Failed with result 'exit-code'.
12월 09 14:33:42 main systemd[1]: Failed to start Docker Application Container Engine.
12월 09 14:34:12 main systemd[1]: docker.service: Start request repeated too quickly.
12월 09 14:34:12 main systemd[1]: docker.service: Failed with result 'exit-code'.
12월 09 14:34:12 main systemd[1]: Failed to start Docker Application Container Engine.
그러하니, 수정할 때에는 위의 파일들을 잘 백업해 놓길 바란다.
여러 시도 끝에, /etc/docker/daemon.json
를 수정하기로 했다.
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"insecure-registries": ["123.456.78.8:1", "1.2.3.4:5000"]
}
위와 같이 "insecure-registries"
를 작성하고 sudo service docker restart
를 통해 Docker를 재시작 해주면 예외 리스트에 추가가 된다. 이 과정에서 문법이 틀리면 위에서 언급한 에러가 발생할 수 있다.
참고로, "runtimes"
은 nvidia-docker를 설치하면서 생긴 것이다.
적용된 내용을 확인하기 위해서는 docker info
명령어를 활용한다.
...
...
...
Insecure Registries:
123.456.78.8:1
1.2.3.4:5000
127.0.0.0/8
...
...
...
Info 정보 중간에 자신이 추가한 예외 리스트를 볼 수 있다.
docker login registry.your.private.com
를 통하여 접속하여 즐기면 된다.