Docker registry 로컬에서 구축
docker에 대한 이해가 있다는 전제하에 wiki화를 하려고 한다.
Ubuntu 18.04 LTS
Docker version 18.09.6, build 481bc77
Docker registry
- Docker 이미지를 저장하고 배포 할 수있는 상태 비 저장 및 확장 성이 뛰어난 서버 측 응용 프로그램
- 프라이빗하게 이미지를 공유할 수 있는 서버 (Private Storage)
- open-source by Apache license
docker hub? registry?
hub에서의 public repository는 무제한이지만 private repository는 1개만 무료
같은 기능을 하는 registry서버를 구현해보자.
docker pull registry
registry 이미지를 가져온다
docker run -dit --name docker-registry -p 5000:5000 registry
registry 실행
--name
- 이름 지정 플래그
-p
- 포트 매핑
docker ps -a
컨테이너가 잘 실행되고 있는지 확인
아래 스크린샷과 같이 확인할 수 있다.
docker pull hello-world
docker tag hello-world localhost:5000/hello-world
- hello-world 이미지를 가져오고 localhost:5000/hello-world 태그를 붙여준다.
- 앞에 registry 주소를 붙여줘야하기 때문에 localhost:5000 태그를 붙여주었다. (registry 포트를 5000번에 매핑했다)
- registry는 ip접속을 허용하지 않기 떄문에 hostname을 넣어줘야한다.
/etc/hosts 파일을 변경해주자
docker push localhost:5000/hello-world
registry에 push한다.
이제 test를 해보자
docker registry에 push
Dockerfile
FROM ubuntu:18.04
MAINTAINER hyunseung AsCE_<leehs1222@gmail.com>
CMD echo 'Hello, Docker!'
Hello, Docker 텍스트를 출력하는 간단한 이미지
docker build -t 이름 .
Dockerfile을 빌드해서 이미지를 만들었다.
-t
이미지 이름 지정
docker images
docker push localhost:5000/hello_docker이미지들을 확인할 수 있다.
아래 스크린샷처럼 이미지가 업로드 되어있는걸 확인할 수 있다.
docker registry에서 pull
로컬 docker server에 동일한 이미지가 있으면 테스트가 안되니 삭제를 먼저 한다.
docker ps -a
,docker images
명령어로 먼저 확인을 한다.docker rm CONTAINER_ID
docker rmi IMAGE_ID
-f
force 플래그
sudo docker run localhost:5000/hello_docker
필자의 경우에는 이미 존재하는 이미 존재하는 이미지라서 Already exists라고 로그가 남겨졌지만 정상적인 경우에는 Download complete라고 로그가 남을 것이다.
run 명령어를 돌린 다음에 정상적으로 Hello, Docker!라는 텍스트가 남은 것을 알 수 있다.
'Linux' 카테고리의 다른 글
Ubuntu 18.04에서 기본 인프라 설치하기 (0) | 2019.10.25 |
---|---|
에러 solve (0) | 2019.09.21 |
Grafana, Prometheus, node-exporter install guide (0) | 2019.07.08 |
CentOS7에 APM설치 (0) | 2018.11.05 |
Xfce Ubuntu(xUbuntu) 설치 (0) | 2018.10.27 |