- 작성시간 : 2017/02/07 13:57
- 퍼머링크 : mcchae.egloos.com/11250564
- 덧글수 : 4
우분투 16.04에서 Docker의 사설 저장소를 이용해 보려고 합니다.
우선 사설 저장소를 설치하는 것은 역시나 docker 데몬이 돌고있는 docker host 에서
$ REGPORT=5000
$ docker run -d \
--name docker-registry \
-p ${REG_PORT}:5000 \
-v /dhv/registry:/var/lib/registry \
--restart=always \
registry:2
와 같이 설치하여 동작시킵니다.
그리고는 다음과 같이 tag를 달고 사설 저장소에 push를 시키는데,
$ REG_HOST=1.2.3.4 # my-ip
$ REGPORT=5000
$ IMG=my-img:1.0
$ docker tag ${IMG} ${REG_HOST}:${REG_PORT}/${IMG}
$ docker push ${REG_HOST}:${REG_PORT}/${IMG}
그리고 다른 docker host 등에서 가져오려면
$ REG_HOST=1.2.3.4 # my-ip
$ REGPORT=5000
$ docker pull ${REG_HOST}:${REG_PORT}/${IMG}
이렇게 하면 되다고 나오는데,
문제는 localhost 말고 ip로 지정하면 오류가 발생합니다.
현재 docker info를 확인해 보면
$ docker info
...
Insecure Registries:
127.0.0.0/8
와 같이 자신의 IP가 Insecure Registeries 에 등록되지 않은 것이었습니다.
우분투 16.04 LTS 버전 및 Docker 1.13 버전은 꼭 다음 위치의 내용을 설정하고
docker 서비스를 재기동시켜야 했습니다.
참고로 이전 버전에는
/etc/default/docker 파일에
DOCKER_OPTS="--insecure-registry $REG_HOST:$REG_PORT"
를 추가하거나
/lib/systemd/system/docker.service 파일에
ExecStart=/usr/bin/dockerd -H fd://
에 --insecure-registry $REG_HOST:$REG_PORT
와 같이 추가하라고 되어 있는데 모두 제대로 동작하지 않습니다.
대신
/etc/docker/daemon.json 파일에
{
"insecure-registries": ["1.2.3.4:5000"]
}
와 같이 설정하고
$ sudo service docker restart
하고 나서
$ docker info
...
Insecure Registries:
1.2.3.4:5000
127.0.0.0/8
과 같이 해당 저장소가 추가 된 것이 보이며,
이것을 해당 Ip로 잘 push 및 pull 이 동작하는 것을 확인할 수 있었습니다.
해당 저장소를 사용하려는 각 docker host에서 위의 내용을 모두 설정해 주어야 했습니다.
어느 분께는 도움이 되셨기를...



덧글
도움이 되셨다니 저의 보람입니다~~ ^^