[이미지 태그 생성]
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 |