[도커] Docker Private Registry 구축하기 (private 저장소)

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를 설정해줍니다.

    1. daemon.json 파일 작성
    $ sudo vi /etc/docker/daemon.json
    # 파일 없는 경우 생성해서 아래 내용 추가
      # 아래 {} 까지 포함해서 넣어야 함 
      { "insecure-registries":["minimilab.tistory.com:5000"] }
    1. 도커 서비스 재시작
    $ 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

도움이 되셨다면 아래의 ♡ 공감의 하트 버튼을 클릭해주세요~!

댓글

Designed by JB FACTORY