มา Backup Docker Container กัน

วิธีการ 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