วิธีการ Backup Container มีอยู่หลายวิธี เช่น Commit Container ที่กำลังทำงานอยู่แล้ว push ไปที่ Docker Registry เคยแนะนำไปแล้วเรื่องการย้าย Container ข้าม Cloud Provider หรือการ Save Container แล้วโยนผ่าน ftp, scp ไปยังเครื่องปลายทาง ซึ่งมีหลายทางเลือก วิธีที่จะมาแนะนำในครั้งนี้เป็นวิธีที่ 2 คือการ Save Container ลองมาดูตัวอย่างกัน

ให้สั่ง run container สั่งตัวนึงขึ้นมาก่อน

docker run -dP --name web1 anoochit/apache2

จากนั้นแก้ไขข้อมูลใน Container ที่กำลังทำงานอยู่ผ่าน bash

docker exec -it web1 bash

คุณจะ drop เข้าไปที่ bash shell ของ container จากนั้นแก้ไขไฟล์สักไฟล์นึง ยกตัวอย่างเช่น /var/www/index.html เป็นต้น

echo "<h1>Hello, World</h1>" > /var/www/index.html

จากนั้นให้ exit ออกจาก Container ตอนนี้ข้อมูลใน /var/www/index.html เปลี่ยนไปแล้ว เราจะ Save Container นี้เอาไปใช้งานที่อื่นดังนี้

สั่ง commit container ปัจจุบันให้เป็น image ก่อน

docker commit web1 anoochit/apache2-snapshot

จากนั้นสั่ง save image ออกมาดังนี้

docker save anoochit/apache2-snapshot > apache2-snapshot.tar

เราจะได้ไฟล์ apache2-snapshot.tar มา ให้โยนไฟล์ไปยัง Docker host เครื่องอื่น แล้วสั่ง load ดังนี้

docker load -i apache2-snapshot.tar

จากนี้เราก็ run image จาก container ที่ backup มาได้แล้ว

docker run -dP anoochit/apache2-snapshot

Comments are closed.