티스토리 뷰

반응형

docker 는 컨테이너 기반으로 독립된 환경을 제공하는데, 이미지를 docker hub 가 아닌 개인 저장소에 빌드 및 업로드 하고 싶을때는 private docker-registry 를 설치해야한다. 여기서는 docker 를 설치하고, private docker-reigistry 도 이미지를 통해 기동하는 구조로 설치하는 방법을 정리했다.

 

docker 설치하기

sudo 로 root 권한을 사용하는 형태로 설치한다고 가정한다. root 권한이 있다면 sudo 는 생략가능하다.

sudo wget -qO- http://get.docker.com/ | sh
sudo systemctl start docker
sudo systemctl enable docker
sudo chmod 666 /var/run/docker.sock

위와 같이 설치가 완료되었다면 docker 명령을 실행해보도록 하자.

 

private docker registry 설치하기

이미지를 저장할때 별도의 경로에 볼륨마운트를 해야, 도커이미지를 재기동할때 파일이 날아가지 않기 때문에

/home1/user/docker-registry-data 라는 폴더에 이미지가 저장되게 구성후 마운트 하는걸 예로 들겠다.

docker pull registry
mkdir -p /home1/user/docker-registry-data 
docker run --name local-registry -d --restart=always -p 5000:5000 -v /home1/user/docker-registry-data:/var/lib/registry/Docker/registry/v2 registry

위와 같이 실행하면, 5000번 포트로 이미지를 가져올수 있다.

 

문제는 localhost 로만 접근이 되고 딴 서버에서 접근이 안될 수 있는데, 이때는 /etc/docker/daemon.json 파일을 구성후 docker 서비스를 재기동해주면 된다. 간단히 예를 들면 아래와 같다. 이렇게 선언하면 Dockerfile 로 빌드한 이미지를 push 할때 딴서버에서 밀어넣는게 가능했다. (공개망이 아닌 사내망에서는 이렇게 해결되었음)

  • /etc/docker/daemon.json
{
    "insecure-registries": ["10.1.1.1:5000", "server1.myhome.com:5000"]
}
  • 재기동 (파일추가후 재기동필요)
sudo systemctl restart docker

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함