مقدمه
وقتی با تصاویر و کانتینرهای داکر کار میکنید، یکی از ویژگیهای اصلی و مهم آن، اعمال تغییرات یا نوشتن تغییرات و یا به اصطلاح کامیت کردن (Commit) به یک ایمیج داکر است. وقتی شما تغییرات را کامیت میکنید، در واقع یک تصویر جدید با یک لایهی اضافی ایجاد مینمائید که لایهی اصلی تصویر را بهروز کرده است (طبق خواست شما).
پیشنیازها
- خط فرمان لینوکس یا ترمینال ویندوز
- یک اکانت کاربری با دسترسی root و یا sudo
- داکر نصب شده روی سیستم
مراحل برای اعمال تغییرات روی داکرایمیج
1- دانلود (pull) یک داکرایمیج
برای نشان دادن نحوهی کامیت کردن تغییرات، ابتدا باید یک تصویر برای انجام کار داشته باشیم. در این مقاله، با آخرین داکرایمیج اوبونتو (Ubuntu) کار میکنیم. ایمیج را با استفاده از دستور زیر از کتابخانهی داکر دانلود مینمائیم:
sudo docker pull ubuntu
حال اگر در کامپیوتر خود، تصاویر موجود را بررسی نمائید ایمیج اوبونتو را مشاهده خواهید کرد:
sudo docker images
از اصلاعات فوق، IMAGE ID را برای استفاده در آینده کپی نمائید.
2- دیپلوی نمودن کانتینر
در این مرحله IMAGE ID که در بالا آنرا کپی نمودید را به دستور زیر اضافه کنید تا طبق ایمیج شما یک کانتینر ایجاد شود:
sudo docker run -it cf0f3ca922e0 bin/bash
گزینهی it- به کانتینر دستور میدهد که در حالت تعاملی (interactive) راهاندازی شود و یک رابط تایپ ترمینال را فعال نماید. پس از اجرای دستور، یک کانتینر جدید راهاندازی شده و شما را به یک شل جدید برای کار در داخل آن منتقل میکند.
3- تغییر دادن کانتینر
حال که در داخل کانتینر هستید، میتوانید ایمیج را تغییر دهید. در مثال زیر، نرمافزار Nmap را برای ارتباط با شبکه و ارزیابی امنیتی به ایمیج خود اضافه میکنیم:
apt-get install nmap
دستور اخیر نرمافزار ذکر شده را داخل کانتینر در حال اجرا نصب میکند:
با اجرای دستور زیر میتوانیم از نصب اطمینان حاصل نمائیم:
nmap --version
خروجی دستور فوق ورژن یا نسخهی نصب شده در کانتینر را بشما نمایش خواهد داد. هم اکنون از کانتینر خود با دستور exit خارج شوید:
exit
با کمک دستور زیر لیست تمام کانتینرها روی سیستم خود را ببینید:
sudo docker ps -a
ما به CONTAINER ID برای ذخیرهی تغییرات اعمال شده نیاز داریم. پس این مورد را از خروجی عبارت بالا کپی نمایید.
4- کامیت کردن تغییرات روی ایمیج
در نهایت با اجرای دستور زیر ایمیج جدیدی از روی نسخهی قبلی برای خود بسازید:
sudo docker commit [CONTAINER_ID] [new_image_name]
بنابراین با توجه به مثال ما کد زیر را باید اجرا نمائیم:
sudo docker commit deddd39fa163 ubuntu-nmap
که deddd39fa163
همان CONTAINER ID ما و ubuntu-nmap نام ایمیج جدید ما میباشد.
ایمیج جدید باید در لیست ایمیجهای موجود روی کامپیوتر ما وجود داشته باشد. برای اطمینان کد زیر را اجرا نمائید:
sudo docker images
نتیجه
در این مقاله نحوهی کامیت نمودن یک داکرایمیج را آموختیم و کدهای لازم را برای انجام این مهم، با شما به اشتراک گذاشتیم. قدم بعدی میتواند این باشد که این ایمیج را برای به اشتراک گذاری با سایر دوستان در یک ریپازیتوری عمومی مثل داکرهاب قرار دهیم. نحوهی انجام اینکار را در مقالهی «استقرار اپلیکیشن استریملیت در داکرهاب با کمک داکر» بطور کامل و ساده تشریح نمودهایم.
منبع: