728x90
실습 환경 리소스 정리
컨테이너 & 이미지 모두 삭제
도커 컨테이너 모두 삭제
- 구동 중인 모든 컨테이너 중지, 삭제
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
도커 이미지 모두 삭제
docker rmi $(docker images -q)
- 에러 발생: IMAGE ID 가 동일하여 충돌이 일어나 삭제할 수 없음
- Error response from daemon: conflict: unable to delete e66264b98777 (must be forced) - image is referenced in multiple repositories
- 해결: 강제 삭제
docker rmi -f $(docker ps -aq)
Docker Registry를 사용한 프라이빗 레지스트리 구축
로컬 환경에 Docker 레지스트리 구축
- Docker 레지스트리는 프라이빗 네트워크 안에서만 이미지를 공개할 수 있음
- registry 검색
[root@localhost ~]# docker search registry
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
registry The Docker Registry 2.0 implementation for s… 3614 [OK]
~
- registry 다운로드
[root@localhost ~]# docker image pull registry
- registry 이미지 확인
[root@localhost ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 773dbf02e42e 3 weeks ago 24.1MB
- registry 컨테이너 시작
- 레지스트리는 5000번 포트를 사용함
[root@localhost ~]# docker container run -d -p 5000:5000 --name registry registry
09ad150b0b06f7e8407ae64893b1f38189eda07af8507b0e857c85df2c5e91fc
- registry 컨테이너 확인
[root@localhost ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
09ad150b0b06 registry "/entrypoint.sh /etc…" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
Docker 이미지 업로드
- Dockerfile.base 베이스 이미지 작성 후 빌드
# Dockerfile.base 작성
[root@localhost Dockerfile]# vi Dockerfile.base
FROM ubuntu:16.04
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install nginx
EXPOSE 80
ONBUILD ADD website.tar /var/www/html/
CMD ["nginx", "-g", "daemon off;"]
# web-base 이미지 빌드
[root@localhost Dockerfile]# docker build -t web-base -f Dockerfile.base .
- index.html 작성 후 tar 파일로 저장
[root@localhost Dockerfile]# vi index.html
<!doctype html>
<html>
<head>
<h1>Private Registry</h1>
</head>
<body>
<img src="https://miro.medium.com/max/560/1*0DFwvFiEE0BiSG6hC8Q-8Q.png">
</body>
</html>
[root@localhost Dockerfile]# tar -cvf website.tar index.html
- Dockerfile 작성
[root@localhost Dockerfile]# vi Dockerfile
FROM web-base
- webpage 이미지 빌드
[root@localhost Dockerfile]# docker build -t webpage .
- webpage 이미지 태그 설정
- 로컬 이미지명: webpage
- localhost의 5000번 포트에서 작동
- 레지스트리에 업로드할 이미지명: rg-webpage
- webpage와 rg-webpage의 IMAGE ID는 동일함 => 동일한 이미지임을 알 수 있음
[root@localhost Dockerfile]# docker image tag webpage localhost:5000/rg-webpage
[root@localhost Dockerfile]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
webpage latest 38288fd45692 3 minutes ago 222MB
localhost:5000/rg-webpage latest 38288fd45692 3 minutes ago 222MB
- 이미지 업로드
[root@localhost Dockerfile]# docker image push localhost:5000/rg-webpage
~
sha256:d4013a81e4478edbc5cda16ee11e92fb556f95a3f155edaa00245c6ae2df29bc size: 1781
- 로컬 이미지 삭제
[root@localhost Dockerfile]# docker image rm localhost:5000/rg-webpage:latest
[root@localhost Dockerfile]# docker image rm webpage
Docker 이미지 다운로드와 작동 확인
- 프라이빗 레지스트리에서 이미지 다운로드
[root@localhost Dockerfile]# docker image pull localhost:5000/rg-webpage
~
sha256:d4013a81e4478edbc5cda16ee11e92fb556f95a3f155edaa00245c6ae2df29bc
Status: Downloaded newer image for localhost:5000/rg-webpage:latest
localhost:5000/rg-webpage:latest
- 이미지 목록 표시
[root@localhost Dockerfile]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/rg-webpage latest 38288fd45692 10 minutes ago 222MB
- 작동 확인
- 웹 브라우저에서 localhost IP:80로 접속
[root@localhost Dockerfile]# docker container run -d -p 80:80 localhost:5000/rg-webpage
d50b9e8f1baa1bfbb41cac59ffd20308f3760e781045891819710f96943be16c
- 웹 브라우저에서 localhost IP:8888로 접속
[root@localhost Dockerfile]# docker container run -d -p 8888:80 localhost:5000/rg-webpage
c39e04736962f7c5ece162681557d5123e25c9fd69420bd4e44cf0371fcbf429
728x90
'쿠버네티스 교육 > 강의 내용 정리' 카테고리의 다른 글
220620_2_k8s_vagrant를 이용한 vm 준비 (0) | 2022.06.20 |
---|---|
220617_4_도커_Docker Compose란 (0) | 2022.06.17 |
220617_2_도커_Dockerfile 명령 ADD / COPY / VOLUME (0) | 2022.06.17 |
220617_1_도커_Dockerfile 명령 ENV / WORKDIR / USER / EXPOSE / ARG / SHELL (0) | 2022.06.17 |
220616_3_도커_Dockerfile 명령 RUN / CMD / ENTRYPOINT / ONBUILD (0) | 2022.06.16 |