728x90
반응형
이미지 올리기(push)
- Dockerfile을 통해 생성된 이미지나 docker commit을 통해 생성된 이미지를 저장하는 곳을 registry라고 한다.
- Registry는 공개적으로 사용하는 Public registry와 회사 내부에서만 접근되도록 하는 Private registry가 있다.
1. dockerhub의 계정을 만든 후 서버에서 docker login 명령어를 통해 도커 허브에 로그인한다.
2. docker tag : hub.docker.com에 본인의 계정의 Repositories에 넣기 위한 태그를 수행한다.
- tag는 이미지의 새로운 참 조명을 넣는 방법이다.
- OS, 버전 표시로 활용하기도한다.
docker [image] tag → push
- hub.docker.com에 본인의 계정의 Repository에 생성한 이미지를 업로드하기 위해서는 본인 계정을 이미지명 앞에 붙여야 docker push 수행시 계정으로 찾아가 저장된다.
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian 10 1048ff9a62c6 2 days ago 114MB
debian latest c978d997d5fe 2 days ago 117MB
py_flask 1.0 40ea0a453ca5 3 days ago 415MB
myweb 3.0 a515b80b7c99 3 days ago 250MB
fc-webserver 1.0 dd8d15682c3f 3 days ago 182MB
prom/prometheus latest 6a5ddde754b6 2 weeks ago 254MB
nginx latest e4720093a3c1 4 weeks ago 187MB
grafana/grafana latest ff21454da76a 5 weeks ago 406MB
httpd 2.4 59bcd61b45fd 8 weeks ago 167MB
redis 7 d1397258b209 2 months ago 138MB
portainer/portainer-ce latest 1a0fb356ea35 3 months ago 294MB
prom/node-exporter latest 72c9c2088986 4 months ago 22.7MB
haproxytech/haproxy-alpine 2.5 3fcad65be198 4 months ago 73.2MB
mysql 5.7-debian 6dca13361869 7 months ago 463MB
dbgurum/haproxy echo 009bf09ede4c 9 months ago 5.14MB
nginx 1.25.0-alpine fe7edaf8a8dc 9 months ago 41.4MB
centos 7 eeb6ee3f44bd 2 years ago 204MB
centos 8 5d0da3dc9764 2 years ago 231MB
ubuntu 16.04 b6f507652425 2 years ago 135MB
nginx 1.19 f0b8a9a54136 2 years ago 133MB
ubuntu 14.04 13b66b487594 2 years ago 197MB
leecloudo/stress 1.0 77788a7c0c8d 3 years ago 146MB
google/cadvisor latest eb1210707573 5 years ago 69.6MB
dbgurum/nginxlb 1.0 6b0f9b1f18b3 44 years ago 230MB
# docker image tag nginx:1.25.0-alpine estar9801/mynginx:v1.0
!!! 생성 된 것 확인
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
estar9801/mynginx v1.0 fe7edaf8a8dc 9 months ago 41.4MB
estar987/mynginx v1.0 fe7edaf8a8dc 9 months ago 41.4MB
# # docker push estar9801/mynginx:v1.0
docker [image] tag
- hub.docker.com에 push된 이미지를 다른 위치에서 pull 해보고, docker run으로 정상 이미지인지 확인해본다.
# docker pull estar9801/mynginx:v1.0
# docker run -d -p 8001:80 --name=myweb1 estar9801/mynginx:v1.0
# curl localhost:8001
docker image 백업 및 이전
- dokcer save 명령을 통해 Layer로 구성된 이미지를 *.tar 파일로 묶어 파일로 저장한다.
- 해달 파일을 전달 받은 컴퓨터에서 docker load를 통해 이미지로 등록한다.
# docker image save py_flask:1.0 > py_flask:1.0.tar
# ls -lh
합계 404M
-rw-r--r-- 1 root root 404M 3월 19 07:50 py_flask:1.0.tar
# docker image save py_flask:1.0 | gzip > py_flask\\:1.0.tar.gz
# docker image save py_flask:1.0 | bzip2 > py_flask\\:1.0.tar.bz2
# ls
py_flask:1.0.tar py_flask:1.0.tar.bz2 py_flask:1.0.tar.gz
보내는 서버
# scp py_flask:1.0.tar py_flask:1.0.tar.bz2 py_flask:1.0.tar.gz 192.168.207.132:/root/download/
받는 서버
# docker image load < py_flask:1.0.tar.gz
Loaded image: py_flask:1.0
# docker images
# docker run -itd -p 8200:80 py_flask:1.0
# curl localhost:8200
docker image 삭제
- Docker Hub를 통해 다운로드 (pull) 받은 이미지는 종류에 따라 용량이 다르다.
- 이미지를 계속 다운만 받게되면 공간이 부족해진다.
- 이런 문제를 해결하기 위해 docker image save를 통해 이미지를 백업하거나 주기적으로 업무에 사용하는 이미지와 사용하지 않는 이미지를 구분하여 관리하고, 불필요한 이미지는 삭제하는 것이 좋다.
# docker image rm [옵션] {이미지명[:tag] | 이미지ID}
# docker rmi [옵션] {이미지명[:tag] | 이미지ID}
!! 이미지 전체 삭제
# docker rmi $(docker images -q)
!! 특정 이미지명이 포함된 것만 삭제
# docker rmi $(docker images | grep centos)
!! 특정 이미지명이 포함된 것만 제외하고 모두 삭제
# docker rmi $(docker images | grep centos)
!! 이미지를 사용중인 컨테이너가 있다.
# docker ps -a
!! 이미지를 삭제하면 에러가 발생한다.
!! 해당 컨테이너 stop 후 rm 으로 컨테이너 삭제
# docker stop 0b123456dfa
# docker rm 0b123456dfa
반응형
'DevOps' 카테고리의 다른 글
컨테이너 격리 기술 (0) | 2024.05.01 |
---|---|
docker registry 구성과 관리 (0) | 2024.03.25 |
docker image 이해와 구조 확인 (0) | 2024.03.15 |
최신 docker 엔진(ver) update (0) | 2024.03.14 |
02. docker 컨테이너 가상화 & VM 가상화 (1) | 2024.03.13 |