Docker - 8. Image 저장소

2020-02-25

Index


  1. Docker
    1. Docker 개념
    2. Docker Install
    3. Docker Command
    4. Docker Example
    5. Image 만들기
    6. Dockerfile
    7. Docker Compose
    8. Image 저장소

  1. Container Orchestration
    1. Container Orchestration 이란
    2. kubernetes(1)
    3. kubernetes(2)
    4. kubernetes install
    5. kubernetes ui
    6. kubernetes를 이용해 배포해보기
    7. kubectl CLI

  1. Provisioning
    1. Provisioning이란
    2. Ansible
    3. Ansible을 이용해 kubernetes cluster 생성하기

목표

지금까지 Docker에 대한 개념과 Container 구동방법 그리고 Image를 만드는 방법등을 살펴봤습니다.
이번엔 생성한 Image를 저장하고 저장된 Image를 원격에서 Pull받아서 사용할 수 있는 저장소에 대해 알아보겠습니다.

  1. Docker Hub
  2. GitLab Container Registry
  3. Docker Registry

여기서는 Docker Hub 와 GitLab Container Registry 에 대해 알아보겠습니다.
참고로 저희는 GitLab Container Registry 사용하는 방향으로 셋팅중 입니다.

1. Docker Hub

Docker Hub는 컨테이너 이미지를위한 세계 최대의 라이브러리 및 커뮤니티입니다.
Docker에서 공식으로 지원하는 Repositry로 공개 Image저장소 이기도 합니다.
물론 약간(?) 의 비용을 지불하면 private Repository를 사용 할 수 있습니다.
Docker Hub에서 private Repository를 만들어 보겠습니다.

1.1 Repository 생성

image48

정상적으로 Repository 가 생성된 것을 확인 할 수 있습니다.

image49

1.2 Image Push

image51

1.3 Image pull

image52

2. GitLab Container Registry

GitLab에서도 Container Registry라는 Docker Image 저장소를 제공하고 있습니다.
GitLab 설치시 Default 설정이 되지 않으므로 활성화를 해야 합니다.
관련 문서는 이곳 을 참고해주세요.

컨테이너 레지스트리는 기본적으로 HTTPS에서 작동합니다. HTTPS 설정을 선행한 후 진행해주세요
해당 문서는 gitlab이 이미 설치된 상태에서의 작업입니다.

2.1 Registry Container 활성화

image53

2.2 Container Registry 접근

활성화 된 Registry 에 접근해 보겠습니다.

1
sudo docker login [url]:[port]

image54
certificate signed by unknown authority 라는 오류가 발생합니다.

Docker hostname을 port와 같이 사용하는경우 어떤 인증서를 사용해야할지 추측하지 않습니다.
이를 위해서 /etc/docker/certs.d/{hostname:port}/ 폴더를 생성한 후 해당 폴더에 인증서를 저장해두어야 합니다.

gitlab인증서를 복사합니다.

image55

gitlab container registry login 해봅니다.

image56

2.3 Container Registry 에 Image push 해보기

image57

image58

2.4 Container Registry에서 Image Pull 받아서 Container 구동해보기

image59

image60

image61