팀내 Docker Private Registry 사용방법

마이클의 AI 연구소·2022년 10월 25일
0
post-thumbnail

본 문서는 팀내 Docker Private Hub 사용방법에 대해 기술합니다.

개요

공개된 Docker Hub에 사내 정보를 업로드하기에는 보안상 문제가 발생할 수 있다. 따라서 팀내에 Private Docker Registry를 구축하여 안전하고 편리하게 Docker Image를 관리하도록 한다.

사전 설정

  • docker 설치
  • /etc/hosts에 다음 내용 추가
<ip 주소> sw2-hub
  • /etc/docker/daemon.json에 아래 내용을 추가한 후, service docker restart를 통해 재시작
"insecure-registries" : [ "sw2-hub:5050" ]

현재 HTTP로 설정이 되어있으나 docker registry 기본 접속 설정이 HTTPS로 되어 있어 오류가 발생합니다. 따라서 HTTP로 접속할 수 있는 “insecure-registries” 옵션을 사용하는 것입니다. 현재 팀 Registry가 사설망에 존재하므로 HTTP 사용으로도 관리가 가능하며, HTTPS에 설정에 다소 시간이 걸리므로 향후 보안 강화 작업을 진행할 예정입니다.

Registry 접속 정보

sw2-hub:5050

Docker Image 생성하기

1. 도커 파일 생성

도커 파일은 컨테이너 이미지를 만드는데 사용되는 단순한 텍스트 기반 지침 스크립트이다. Dockerfile 이라는 이름의 파일을 만든다.

# syntax=docker/dockerfile:1
FROM node:12-alpine
RUN apk add --no-cache python3 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
  • FROM : 베이스 이미지를 말합니다. 간단히 말해 OS라고 생각하면 되고, Alpine은 매우 작은 Linux 배포판인 Alpine Linux를 기반으로 하는 기본 이미지를 의미한다. node:12-alpine의 의미는 노드 12에 설치된 알파인 기반 이미지를 의미한다.
  • RUN : 도커 이미지가 생성되기 전에 수행할 shell 명령이다.ㅏ
  • COPY : 도커 클라이언트의 현재 디렉토리에서 파일을 추가한다.
  • CMD : 컨테이너 내에서 실행할 명령을 지정하며 도커 파일 내에서 한 번만 사용할 수 있다.

2. 도커 이미지 빌드

아래 명령을 통해 도커 파일을 사용하여 새 컨테이너 이미지를 빌드할 수 있다.

$ docker build -t getting-started .

Push 하기

container_name과 tag를 활용하여 빌드된 docker image를 push한다.

docker push sw2-hub:5050/{container_name}:{tag}

Pull 하기

다음 명령을 통해 이미지를 가져온다.

docker pull sw2-hub:5050/{container_name}:{tag}

Tag 설정

다음 명령을 통해 tag를 설정한다.

docker tag {tag} sw2-hub:5050/{container_name}

Registry에 저장된 컨테이너 목록 가져오기

전체 이미지 목록 확인

콘솔 사용시

curl -X GET sw2-hub:5050/v2/_catalog

웹링크

http://sw2-hub:5050/v2/_catalog

특정 컨테이너 태그 목록 확인

curl -X GET sw2-hub:5050/v2/{container_name}/tags/list

AWAS-Insight 개발환경 컨테이너 태그 목록

profile
늘 성장을 꿈꾸는 자들을 위한 블로그입니다.

0개의 댓글