📌 공부 계기
추가적인 도커 공부를 위해 유튜브 따배도 도커 시리즈를 보면서 정리해 봅니다.
목차
📍5-1. 컨테이너 보관창고 : 이론편
1️⃣ 컨테이너 보관 창고 (Registry)가 있어요?
* Registry는 여러 형태의 컨테이너 이미지를 저장하는 저장소
- 종류 :
- Docker Hub : hub.docker.com 공개 Registy를 의미
- Private Registry : 사내의 컨테이너 저장소
2️⃣ docker hub (Registry) 를 사용하고 싶어요.
1) docker hub에 가입
Docker Hub Container Image Library | App Containerization
Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.
hub.docker.com
2) explore로 다양한 이미지 검색 가능
3) 개인 Repository도 가능
개인 Repository의 이미지도 공개가 된다. 공개하지 않으려면 별도의 비용을 지불해야함.
4) 커맨드 라인에서 dokcer hub 이미지 검색
docker search 키워드
키워드가 포함된 이미지 리스트를 보여줌
3️⃣ Private Registry를 구축하고 싶어요.
사내에서만 이용하는 Registry를 만들고 싶어요!
그러면 허브에서 registry 공식 이미지를 찾아라
이게 컨테이너 Registry를 운영할 수 있도록 도와주는 이미지
registry - Official Image | Docker Hub
About Official Images Docker Official Images are a curated set of Docker open source and drop-in solution repositories. Why Official Images? These images have clear documentation, promote best practices, and are designed for the most common use cases.
hub.docker.com
- 아래 명령어로 Private 컨테이너 운영
docker run -d -p 5000:5000 --restart always --name registry registry:2
private repository 운영하여 이미지를 pull / push 할 때는
# ex) docker pull 호스트네임:포트넘버/이미지명:태그
# ex) docker push 호스트네임:포트넘버/이미지명:태그
컨테이너 repository 이름을 적용해서 pull이나 push해야 사용가능하다. (80포트면 생략가능)
📍5-2. 컨테이너 보관창고 : 실습편
1️⃣ hub.docker.com에 컨테이너 업로드 및 다운로드
1) 허브에서 이미지 검색
docker search 키워드
2) 이미지 다운
latest 태그는 생략 가능
docker pull 이미지명:태그
3) hub의 개인 repository에 올려보기
login 명령어 통해서 아이디와 패스워드 입력
아래는 이미 전에 로그인한 기록이 저장되어 바로 로그인 됨 (도커 로그아웃 하기 전까지 유지됨)
4) 이미지를 개인 repository 에 업로드 해보기
공식 이미지 및 개인이 작성한 이미지도 가능. 다만, 이미지 이름에 도커 계정을 붙여줘야 올릴 수 있다.
docker tag 원본이미지명:태그 도커계정/바꿀이미지명:태그
이처럼 도커 계정을 붙여 이름을 바꿔주면 이미지 리스트에 같은 이미지로 이름이 2개 조회가 된다. (이미지가 2개인건 아님)
5) 개인 레포에 push
docker push 도커계정포함된이미지명
이 이미지는 어디서든 누구든지 다운받을 수 있음.
2️⃣ Private Registry 운영하기
비용을 지불하는 방식이 아니라 직접 Private Registry를 운영하는 방식
- 외부 네트워크가 안되는 환경에서 운영하기
- 사내 전용 레지스트리
1) 허브나 커맨드에서 registry 검색
2) registry 실행
registry가 없는 상태에서 run하면 알아서 이미지를 pull받고 run을 실행
docker run -d -p 5000:5000 --restart always --name registry registry:2
3) 공식 허브에서 제공하는 Repository는 이름이 필요없으나 Private Repository는 어느 시스템에서 운영하는 Repository인지 명시를 해줘야 하기 때문에 현재 호스트네임과 포트를 통해 push 하고 pull 해야한다
호스트 네임 확인 및 Private Repository 포트 확인
4) 허브의 개인 Repository처럼 이미지에 해당 호스트네임과 포트가 포함되야 한다.
docker tag 원본이미지명:태그 호스트네임:포트/이미지명:태그
5) Private Repository에 push
🚩호스트 네임으로 할 때

앗? 로컬호스트로랑 다르게 호스트네임으로 하는 건 실행이 안된다.

docker은 보안상의 이유로 ssl 인증을 하는 https를 기본적으로 사용하는데 서버는 http 응답을 주게되어 https인 클라이언트가 못받고 있는 상황
이 방법 참고하면 될 듯하다
[Docker] private registry http: server gave HTTP response to HTTPS client 해결 방법
오늘은 private 한 환경에서 별도로 Docker registry를 구성했을 때 종종 발생하는 오류인 http server gave http response to https client의 해결 방법에 대해 포스팅 하려고 합니다. 일반적으로 docker registry는 docke
bono915.tistory.com
6) push한거 어디 있나요???
var 디렉토리는 root 계정으로 접근 가능
/var/lib/docker/voluems 에 아래와 같은 하늘색으로 컨테이너 디렉토리가 생성되어 있음
그 디렉토리 아래에 아래와 같은 구조가 있고 우리가 push한 httpd도 볼 수 있다.
➕ 공부자료
5-1 , 5-2 내용
[따배도] 도커 시리즈
www.youtube.com
'DevOps > Docker' 카테고리의 다른 글
따배도 도커 시리즈 7] 컨테이너 관리 (0) | 2023.04.15 |
---|---|
따배도 도커 시리즈 6] 컨테이너 사용하기 (0) | 2023.04.14 |
따배도 도커 시리즈 4] 컨테이너 만들고 허브에 배포해보기 (0) | 2023.04.13 |
따배도 도커 시리즈 0~3-2] 도커 살펴보기 (0) | 2023.04.12 |
원티드 챌린지 Docker 2] 로컬환경에서 도커를 활용해보자! (0) | 2023.04.09 |