Docker에 registry 설정
2024. 4. 13. 13:38ㆍDocker
https://novemberde.github.io/post/2017/04/09/Docker_Registry_0/
docker에 registry 설정
# registry 가져오기
docker pull registry:{tag}
# registry 실행
docker run -dit name docker-registry -p {localhost port}:{container port} registry
registry 작동 테스트
# lcoalhost hello-world 이미지 생성
docker pull hello-world
docker tag hello-world localhost:{localhost port}/hello-world
# 이미지 push
docker push localhost:{localhost port}/hello-world
# 이미지 확인
curl http://localhost:{localhost port}/v2/_catalog
원격에서 registry 접속 설정: nginx 활용
niginx를 통해서 외부에서 보여지는 port로 이미지를 생성해야 함
# nginx 설정
sudo vi {nginx conf 디렉토리}/nginx.conf
------------------------------------
# 이미지 용량 제한 제거
server {
listen {외부 port};
listen [::]:{외부 port};
server_name {외부 도메인};
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:{localhost port}
# 아래 내용은 필요에 의해서 설정 필요
#registry.gift1000.co.krproxy_set_header Host $host;
#proxy_pass_request_headers on;
#proxy_ssl_server_name on;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Host $server_name;
#proxy_set_header X-Forwarded-For-Proto $scheme;
#proxy_set_header X-Forwarded-Ssl off;
}
}
# nginx 재기동
sudo systemctl reload nginx
# 브라우져에서 접속
https://{외부 도메인}:{외부 port}/v2/_catalog
# 외부 도메인 hello-world 이미지 생성
# http, https에서 port 정보를 기술하지 않고 접속이 가능한 경우, 이미지도 port 정보가 빠져야 함
docker tag localhost{localhost port}/hello-world {외부 도메인}:{외부 port}/hello-world
# 이미지 push
docker push {외부 도메인}:{외부 port}/hello-world
# 이미지 확인
curl http://{외부 도메인}:{외부 port}/v2/_catalog
registry에 volume 적용하기
# volume 만들기
docker volume create {volume}
docker volume ls
docker volume inspect {volume}
# registry 기존 registry 삭제(필요한 경우만)
docker ps
docker stop {container id}
docker rm {container id}
# registry volume 연결
docker run -dit -v {volume}:/var/lib/registry --name docker-registry -p {local port}:{container port} registry
# volume mount 확인
docker container inspect docker-registry
# 테스트
# http(80), https(443)인 경우는 {외부 port} 표시하지 않아야 함
docker pull hello-world
docker tag hello-world {외부 도메인}:{외부 port}/hello-world
docker push {외부 도메인}:{외부 port}/hello-world
# 이미지 등록 확인
su
cd /var/lib/docker/volumes/{volume}/_data/docker/{volumes}/v2/repositories
'Docker' 카테고리의 다른 글
docker buildx 설치 (0) | 2024.07.09 |
---|---|
Dockerfile 명령어 (0) | 2024.07.09 |
Docker 삭제 (0) | 2023.02.25 |
우분투에 Docker 설치하기 (0) | 2023.02.25 |
gitlab 명령어 (0) | 2022.01.09 |