티스토리 뷰
반응형
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
반응형
'docker & k8s' 카테고리의 다른 글
[Docker] RUN, ENTRYPOINT, CMD 차이 이해하기 (0) | 2022.09.21 |
---|---|
[docker] no space left on device 이유와 해결 (0) | 2022.09.05 |
댓글