일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JavaScript
- java9
- swagger
- Java
- dto valid
- jvm
- 초기 세팅
- generate entity
- docker 설치
- memcached
- docker
- jpa entity자동
- 초기 구축
- React
- Next.js 14
- JPA
- custom valid
- MySQL
- header setting
- generate pojos
- SpringBoot
- 리눅스
- spring boot
- 헤더 설정
- java8
- ollama langflow
- 도커
- CentOS6
- spring
- NextJS
- Today
- Total
개발자의 길
PRIVATE DOCKER REGISTRY 만들기 본문
docker는 활용도가 많다.
하지만 내가 만든 이미지를 배포하고, 다른 서버에서 받아서 사용할려면
github 처럼 저장소가 필요하다.
도커도 마찬가지로 도커허브에서 이런 역할이 가능하다.
하지만 회사내 프로젝트나 셋팅은 비공개로 하고 싶지 마련..
도커 허브에서는 계정당 딱 1개 이미지만 무료로 비공개로 만들수 있다..
그 이상을 만들려면 유료 비용을 내야한다.
하지만 회사내에서 자체적으로 레포지토리를 만들어져 가질수 있다.
도커 짱..
도커 허브에 올리는 방법& 자체 서버에 레지스트리를 생성해서 올리는 방법..
지금 부터 방법을 설명하겠다.
1. 도커 허브에 올리는 방법
우선 서버에서 docker에 로그인을 한다.
$ docker login
~/.docker/config.json 에 인증 정보가 저장된다. 인증 바꾸고 싶으면 이 파일 지우시오
도커 이미지 명은 다음 형태가 되야 한다.
[Registry URL]/[사용자 ID]/[이미지명]:[tag]
Registry URL은 기본적으로 도커 허브를 바라보고 있고 사용자 ID를 지정하지 않으면 기본값(library)을 사용합니다. 따라서 ubuntu = library/ubuntu = docker.io/library/ubuntu 는 모두 동일한 표현입니다.
도커의 tag명령어를 이용하여 기존에 만든 이미지에 추가로 이름을 지어줄 수 있습니다.
한마디로 이미지를 다른 이름으로 또하나 저장하는거다...원본은 안건드리는게 좋겠지..
$ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
ex ) $ docker tag app:1.0 jang/test-app:2
이제 push명령을 이용해 도커 허브에 이미지를 전송해 봅니다.
$ docker push jang/test-app:2
이제 어디서든 jang/test-app:2이미지를 사용할 수 있습니다.
2. Private Docker Registry 생성 및 배포
도커 레지스트리는 도커를 이용해서 쉽게 만들수 있다. 도커에서 registry를 받아온다
$ docker pull registry
이미지를 확인해 보면(docker images) registry 의 lastest 버전을 가져왔을 꺼다
이제 registry를 실행해보자
$ docker run -dit --name docker-registry -p 5000:5000 registry
registry는 기본 5000번 포트다
이제 내 이미지 파일을 push 해보자
도커 허브랑 다른점은 도커허브는 [사용자 ID]/[이미지명]:[tag] 라면
private registry는 [사용자 ID] 부분에 registry URL 주소를 사용하여야 한다
localhost에 registry를 컨테이너로 올렸다는 가정하에
$ docker tag jang/test-app:2 localhost:5000/test-app:2
이미지를 레지스트리 용으로 하나 더 만들고
$ docker push localhost:5000/test-app:2
잘 올라갔나 확인해보자
#이미지 확인
$ curl -X GET http://localhost:5000/v2/_catalog
#태그 확인
$ curl -X GET http://localhost:5000/v2/test-app/tags/list
이제 기본 셋팅은 끝났다.
근대 한가지 주의할 점이 있다.
결국은 private docker registry를 이용한다는 것은
다른 서버에서 같이 공유하고 이용할려는 목적인데
다른 서버에서 받아올려면 기본적으로 https가 되어야 한다. https 아 아니면 안되게끔 되어있다
(물론 이 설정을 insecure 설정하고 가짜로 openssl로 키 생성해서 하는 방법도 있지만..굳이 실무에 사용하는데..우회하는 방법은 적절치 않다.)
*) 번외..
실제로 쉽제 private registry를 구성하여 운영할 수 있지만..
인터넷을 많이 찾아보면 문제점이 많이 나온다..
우선 대량의 서버를 운영하는경우 단일의 registry 서버로 감당이 힘들다.
회사에서 하는거라면, 그냥 유료 docker hub 쓰는게 나을수도 있다..
그리고 최종적으로 docker 까지 적용하였으면
쿠버네티스까지 적용하여서, docker 컨테이너를 관리하는 방식으로 가길 바란다.
private registry는 개인적으로 작게 운영할때 써라..
'13. DOCKER' 카테고리의 다른 글
docker 로 mysql 설치 실행 (0) | 2020.06.11 |
---|---|
[Docker] Centos 6 - Docker 설치 (3) | 2019.12.04 |
Docker 기본 명령어 (0) | 2019.06.18 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.