본문 바로가기

IT 엔지니어/CLOUD

Docker image

[이미지 태그 생성]

docker image tag [image name] [Docker ID]/[name]:version

docker image push [Docker ID]/[name]:version

[이미지 생성]

docker container export / 파일 및 디렉터리를 호스트로 tar파일로 생성

docker image import / 호스트 tar 파일 이용 이미지 생성

tar -xvf myweb.tar -C /var/www/
------------------------------

docker container commit / 이미지 생성
docker image save / 이미지를 호스트에 tar 파일로 저장

docker image load / 호스트에 tar 이미지 파일 이용 이미지 생성 

docker system prune / 종료된 이미지 컨테이너 일괄삭제

- a : 생성자
- m : 메시지 추가

docker commit -a "h-g-d" -m "myweb-img" myweb2 (hgd001)/myweb:1.0
-----------------------------
docker save -o test.tar ubuntu

file ubuntu.tar
ubuntu1.tar: POSIX tar archive

 

최근 목록 덮어쓰기 가능
docker commit sss/001:1.0
docker commit myweb2

 

 

 

docker image inspect --format="{{.Author}}" $(docker images -aq)
호스트 -> 컨테이너
docker cp /index.html [web2:/usr/share/nginx/html] 

Successfully copied 2.05kB to web2:/usr/share/nginx/html

---------------------------------

컨테이너 -> 호스트
docker cp [web2:/usr/share/nginx/html/index.html] /tmp

이미지로 컨테이너 생성 후 변동 저장
변동된 컨테이너 이미지로 생성

이미지 비교 시 Layer 추가 상태 확인 가능

 

 

 

 

✅ Docker 백업 & 복원 관련 명령어 비교표

명령어 대상 목적 생성되는 파일 복원 방식 비고

docker container export 컨테이너 컨테이너 파일 시스템 백업 (운영 중 데이터 포함) .tar docker import 컨테이너 → 이미지 (메타데이터는 없음)
docker image import .tar 파일 (파일 시스템) tar 파일을 이미지로 복원 .tar - 위의 export로 만든 tar도 사용 가능
docker image save 이미지 이미지 자체를 백업 (레이어 + 메타데이터 포함) .tar docker load 태그 정보 등 포함, 정식 백업
docker image load .tar 파일 (이미지 백업) 저장된 이미지 tar 복원 .tar - save로 만든 tar 사용

🔍 예시 흐름으로 보기

① 컨테이너 파일 백업 & 복원 (운영 중 데이터까지)

docker export mycontainer.tar > container_backup

docker export -o myweb myweb.tar

tar -xvf myweb.tar [test]

docker import container.tar mynewimage

docker import backup.tar > [name] / 현재 디렉에 생성 -> 결과만 출력 / docker images에서 확인 가능

docker images 확인

  • 컨테이너 상태만 저장됨 (설정, 볼륨, 네트워크 등 X)

② 이미지 자체 백업 & 복원 (설정 포함된 정식 이미지)

docker image save myimage:latest > image_backup.tar

docker save -o test.tar test
현재 디렉에 저장

docker load -i test.tar test

docker image load < image_backup.tar

  • 이미지 자체 완전 복원 (태그 포함)

✅ 방법 1: docker commit + docker save/load (가장 간단하고 안전)

📦 1) 컨테이너를 이미지로 저장 (commit)

docker commit <컨테이너이름 또는 ID> my_server_image

현재 컨테이너 상태(설치된 서버, 파일 포함)를 새 이미지로 저장


💾 2) 이미지 파일로 저장 (save)

docker save -o my_server_image.tar (my_server_image)

.tar로 저장해서 다른 호스트로 옮길 수 있음


📥 3) 복원할 때 (load)

docker load -i my_server_image.tar


▶️ 4) 실행

docker run -d -p 80:80 -v www:/usr/local/apach2/htdocs my_server_image 

포트, 볼륨 같은 건 run할 때 직접 설정해야 해!


✅ 방법 2: Dockerfile로 재현 (가장 깔끔하고 재사용 가능)

📄 1) 예: Nginx 설치 이미지 만들기

# Dockerfile
FROM ubuntu:22.04
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]

🧱 2) 이미지 빌드

docker build -t my_nginx_image .

▶️ 3) 실행

docker run -d -p 80:80 my_nginx_image

이 방식은 버전 관리, 팀 공유, 자동화에 좋음.

'IT 엔지니어 > CLOUD' 카테고리의 다른 글

Docker image build  (0) 2025.05.16
Docker  (1) 2025.05.15
Docker Resource Limit  (0) 2025.05.13
Docker -1  (0) 2025.05.13
Docker Network 심화  (0) 2025.05.12