[도커] Docker Private Registry 구축하기 (private 저장소)
- Docker
- 2019. 5. 2. 07:39
docker 설치 후 private 한 저장소인 registry 를 구축하여
이미지를 push하고 pull 하는 방법을 알아보도록 하겠습니다.
아래의 포스팅으로 이해가 어려우신 분은 Docker Registry 구축하기 영상을 참고해주세요.
https://youtu.be/5eP1KNH1UQ0도커가 무엇인지 궁금하신 분은 도커란 무엇인가? 를 확인해주세요.
1. Centos7 도커 최신버전 설치
# yum-config-manager 지정 위해 설치
$ yum install yum-utils
# 도커 repository 지정
$ sudo yum-config-manager \\
--add-repo \\
<https://download.docker.com/linux/centos/docker-ce.repo>
# 최신 도커 설치
$ sudo yum install docker-ce
# reboot 시 도커 자동으로 재 실행 되도록 설정
$ sudo systemctl enable docker.service
# 설정을 해준 후에는 도커 서비스를 재실행 해줍니다.
$ sudo systemctl start docker.service
2. registry v2 설치
- 최신버전의 docker registry 이미지를 다운받습니다.
sudo docker pull registry:latest
3. registry 실행
- -d : 백그라운드로 실행
- --name : 이미지 이름 설정
- -p : 사용할 포트 설정 (host port : docker port)
- --restart always : 컨테이너가 종료되어도 다시 실행
docker run -d --name registry -p 5000:5000 --restart always registry
4. 이미지 다운
- docker hub에서 mongodb 이미지를 다운 받아서 사용하겠습니다.
$ docker pull mongo
5. tag 설정
- registry에 push 할 이미지의 태그를 등록합니다.
- docker tag <이미지 이름>:<태그> <Docker 레지스트리 URL>/<이미지 이름>:<태그>` 형식
- 이미지 마다 ip를 노출하고 싶지 않아서, 임의의 도메인 명을 사용하고 6번의 hostfile을 변경해서 사용하겠습니다.
$ sudo docker tag mongo:latest minimilab.tistory.com:5000/mongo:latest
6. host 파일 설정
- minimilab.com 도메인이 사용될 경우, 내 IP 주소가 사용되도록 host 파일을 변경해줍니다.
- registry 를 등록한 서버가 아닌, 다른 서버에서 사용하고 싶을 경우 registry 가 있는 서버의 ip를 직접 입력합니다.
$ vi /etc/hosts
# 자신의 컴퓨터를 의미
127.0.0.1 minimilab.tistory.com
7. insecure-registries 추가
-
registry를 사용할 수 있도록 insecure-registries를 설정해줍니다.
- daemon.json 파일 작성
$ sudo vi /etc/docker/daemon.json # 파일 없는 경우 생성해서 아래 내용 추가 # 아래 {} 까지 포함해서 넣어야 함 { "insecure-registries":["minimilab.tistory.com:5000"] }
- 도커 서비스 재시작
$ sudo service docker restart
8. docker push
- 생성한 registry 에 이미지를 push 합니다.
$ docker push minimilab.tistory.com:5000/mongo:latest
9. docker rmi image
- registry 에서 pull이 잘 되는지 확인해보기 위해 기존에 있던 이미지를 삭제합니다.
$ docker rmi minimilab.tistory.com:5000/mongo
10. docker pull
- 생성한 registry 에서 이미지를 가져옵니다.
$ docker pull minimilab.tistory.com:5000/mongo:latest
도움이 되셨다면 아래의 ♡ 공감의 하트 버튼을 클릭해주세요~!