회사 서버에 존재하던 저장소가 닫혀서 울고 있자 직접 구축해서 관리하라고 미션을 주셨다. 감사한 마음으로 진행한다.
- docker version : 18.09.7 / OS : Ubuntu 16.04
- 먼저 도커 레지스트리 이미지를 가져온다.
docker pull registry:latest
- 가져온 이미지를 확인해보자.
docker image ls | grep registry
registry latest f32a97de94e1 6 months ago 25.8MB
- /etc/init.d/docker 파일을 열어서 옵션을 추가해준다.
vi /etc/init.d/docker
DOCKER_OPTS=--insecure-registry <IP혹은 LOCALHOST>:5000
아래 링크를 보면 Ubuntu 14대에서는 이런 방법을 사용해야했고 이제는 레지스트리만 추가하면 된다는데 혹시 몰라서 두 개 다 설정해주었다.
https://nickjanetakis.com/blog/docker-tip-50-running-an-insecure-docker-registry
- daemon에도 저장해준다. 이 것을 지정해주지 않으면 외부 저장소를 이용할 수 없다.
vi /etc/docker/daemon.json
"insecure-registries": ["<IP:PORT>"]
컴마를 통해 여러 저장소도 저장이 된다. 이후 도커를 재시작해준다.
service docker restart
참으로 고맙게도 도커 재시작하면 컨테이너 의존성 때문에 하나하나 다 다시 올려야해서 ... 고민을 많이 했다. ceph가 삑나서 어차피 한 번 밀어줘야 하는데 하고 그냥 했다.
- 컨테이너를 실행시키고 잘 돌아가는지 확인해본다.
docker run --name local-registry -d -p 5000:5000 registry
a4f5702fc21d registry "/entrypoint.sh /etc…" 28 minutes ago Up 28 minutes 0.0.0.0:5000->5000/tcp local-registry
- 이제 이미지를 등록해본다. 난 무난하게 registry를 등록하고 싶었고 먼저 태그명을 바꿔주었다.
docker tag registry:latest <IP:PORT>/registry:latest
docker image ls | grep registry
<IP:PORT>/registry latest f32a97de94e1 6 months ago 25.8MB
registry latest f32a97de94e1 6 months ago 25.8M
- push 명령어를 통해 registry를 올려준다.
docker push <IP:PORT>/registry:latest
The push refers to repository [<IP:PORT>/registry]
73d61bf022fd: Pushed
5bbc5831d696: Pushed
d5974ddb5a45: Pushed
f641ef7a37ad: Pushed
d9ff549177a9: Pushed
latest: digest: sha256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774 size: 1363
- 확인하는 방법은 여러가지가 있지만 curl을 통해 먼저 확인해본다.
curl -X GET <IP:PORT>/v2/_catalog
{"repositories":["registry"]}
- 다른 노드에서 직접 다운받는 방법도 있다. 이 때에도 역시 /etc/docker/daemon.json에 저장소를 등록해주어야 한다.
vi /etc/docker/daemon.json
service docker restart
docker pull <IP:PORT>/registry:latest
latest: Pulling from registry
c87736221ed0: Pull complete
1cc8e0bb44df: Pull complete
54d33bcb37f5: Pull complete
e8afc091c171: Pull complete
b4541f6d3db6: Pull complete
Digest: sha256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774
Status: Downloaded newer image for <IP:PORT>/registry:latest
docker image ls | grep registry
<IP:PORT>/registry latest f32a97de94e1 6 months ago 25.8MB
- 여담으로 도커는 이미지를 tar.gz 로 만들어준다.
image -> tar
docker save -o [파일명] [이미지명]
tar -> image
docker load -i [파일명]
- 실제로 해보면 이런 느낌이다.
docker save -o registry.tar <IP:PORT>/registry
ls
registry.tar
docker load -i registry.tar
Loaded image: <IP:PORT>/registry:latest
- 이러면 끝~!
'Cloud > Docker' 카테고리의 다른 글
Docker Private Registry에 등록된 이미지 지우기 (0) | 2019.12.30 |
---|---|
docker container의 흔적 (0) | 2019.09.17 |
Ubuntu 16.04 에서 Docker CE 설치하기 (0) | 2019.08.23 |
PaaS 이해를 향한 여정 - (2) 도커 이해하기 (0) | 2019.08.20 |
PaaS 이해를 향한 여정 - (1) 컨테이너 이해하기 (0) | 2019.08.14 |