August 21, 2019

Docker Export - Container File System 추출 (tar)

Docker Export - Container File System

export 명령을 사용하여, 컨테이너의 파일 시스템을 가져와 tar 아카이브 형식으로 백업할 수 있으며,
백업 된 파일로 다음에 이미지 제작에 사용할 수 있습니다.

docker export <옵션> <컨테이너 명>

아래 옵션을 통해 확인해보도록 하겠습니다.




dongdonge@dongdonge$ docker export --help

Usage:  docker export [OPTIONS] CONTAINER

Export a container's filesystem as a tar archive

Options:
  -o, --output string   Write to a file, instead of STDOUT

별다른 옵션이 존재하지 않으므로 아래 예시를 통해 사용해보겠습니다.




dongdonge@dongdonge$ docker export -o webserver.tar web_server

"web_server" 컨테이너의 파일 시스템을 추출하고, 추출된 파일명은 "webserver.tar"로 하였습니다.




dongdonge@dongdonge$ ls
webserver.tar


dongdonge@dongdonge$ tar -xvf webserver.tar
var/lib/systemd/deb-systemd-helper-enabled/apt-daily.timer.dsh-also
var/lib/systemd/deb-systemd-helper-enabled/fstrim.timer.dsh-also
var/lib/systemd/deb-systemd-helper-enabled/motd-news.timer.dsh-also
var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/
var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/apache2.service
var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/
var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/apt-daily-upgrade.timer
var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/apt-daily.timer
var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/fstrim.timer
var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/motd-news.timer


dongdonge@dongdonge$ ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  webserver.tar
.........

생성된 "webserver.tar" 파일의 내용 보기위해 풀면 컨테이너 내부에 존재하는 파일 시스템 동일하게 백업 된걸 볼 수 있습니다.

다음 편에 방금 생성한 tar 파일을 가지고 "import" 명령을 사용하여 이미지를 제작해보도록 하겠습니다.