Docker Local Repository 사용하는 방법
24 Jan 2018 | DockerDocker Local Repository 사용하는 방법
현재 사용하는 PC에 Docker Local Repository를 구성하고 싶으면 아래의 방법대로 하시면 됩니다.
Docker init.d 파일 수정
먼저 Docker 서비스를 종료합니다.
$ sudo service docker stop
그 이후 /etc/init.d/docker 파일을 편집기로 열어서 DOCKER_OPTS 항목에 아래 내용을 추가해줍니다.
DOCKER_OPTS=--insecure-registry localhost:5000
그런 다음 Docker 서비스를 다시 실행합니다.
$ sudo service docker restart
Registry Server 이미지 다운로드
Docker Registry 서버도 Docker Hub에서 이미지로 배포하고 있습니다. 다음 명령어로 Registry 이미지를 다운로드합니다.
$ docker pull registry:latest
Registry 컨테이너 실행
로컬 PC의 `/home/snowdeer/Docker/registry’ 폴더를 컨테이너에 연결시켰습니다.
docker run -d -p 5000:5000 --name snowdeer-registry -v /home/snowdeer/Docker/registry:/tmp/registry registry
로컬 Registry에 Docker 이미지 올리기
먼저 commit 명령어를 이용해서 Docker 이미지를 간단하게 만들어봅니다.
$ docker run --name snow-nginx nginx
$ docker commit -m "Snow Nginx" snow-nginx snow-nginx:0.1
그런 다음 위에서 만들었던 로컬 Registry에 해당 이미지를 push 명령어를 이용해서 업로드합니다.
$ docker tag snow-nginx:0.1 localhost:5000/snow-nginx:0.1
$ docker push localhost:5000/snow-nginx:0.1
The push refers to repository [localhost:5000/snow-nginx]
fced5b294318: Pushed 
a103d141fc98: Pushed 
73e2bd445514: Pushed 
2ec5c0a4cb57: Pushed 
0.1: digest: sha256:6e7f42cb6b7df0c8a4cbd75d0fbecefcafdcc6c0d95bb4e07a19c05ef19e5171 size: 1155
태그를 생성하는 명령은 docker tag <image name>:<tag> <Docker registry URL>/<image name>:<tag> 입니다.
이미지 업로드는 docker push <Docker registry URL>/<image name>:<tag> 입니다.
개인이 만든 Registry에 이미지를 올릴 때는 먼저 태그를 생성해야 하며, 그 이후 push 명령을 사용할 수 있습니다.
로컬 Registry의 이미지 리스트 조회
로컬 Registry의 이미지도 docker images 명령을 이용해서 조회할 수 있습니다.
$ docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
localhost:5000/snow-nginx   0.1                 e3fc966b1d25        5 minutes ago       108MB
snow-nginx                  0.1                 e3fc966b1d25        5 minutes ago       108MB
ubuntu                      latest              0458a4468cbc        11 days ago         112MB
wordpress                   latest              e8cebf03929c        2 weeks ago         407MB
mysql                       latest              f008d8ff927d        3 weeks ago         409MB
registry                    latest              d1fd7d86a825        3 weeks ago         33.3MB
nginx                       latest              3f8a4339aadd        5 weeks ago         108MB
로컬 Registry의 이미지 다운로드
$ docker pull localhost:5000/snow-nginx:0.1
로컬 Registry의 이미지 삭제
$ docker rmi localhost:5000/snow-nginx:0.1
