چطور یک ایمیج رو در داکر آپدیت کنیم؟
فرض کنید یک ایمیج Ubuntu نسخه 18 دارید و پروژتون درش قرار داره. همه چیز اوکیه و حالا میخواید اون Ubuntu 18 رو اپدیت کنید به نسخه 20.
شاید خیلیا تون فکر کنید که خب کاری نداره. میریم توی کانتینر این خط ها رو ران میکنیم:
اما.. نه!! به 2 دلیل.
1. شما الان در یک کانتینر قرار داری و تغییراتی که اعمال میکنی به روی کانتینر اعمال میشه. (مگر اینکه ای کانتینر یک ایمیج دیگه بسازین)
2. ممکنه در روند اپدیت، تعدادی از پکیج های اساسی اپدیت نشن که ممکنه واستون مشکل ساز شه.
خب چیکار کنیم؟ معمولا افرادی که یکم حرفه ای تر دنبال میکنن، از docker-compose برای ران گرفتن از ایمیج هاشون استفاده میکنن. یک سری هم هستن که دستی اینکارو میکنن و فرقی نداره.
شما باید Dockerfile خودتون رو ادیت کنید. همونطور که قبلا گفتیم، هر ایمیج از بیس ایمیجی استفاده میکنه. کافیه نسخه base image رو تغییر بدیم و یک بار دیگه بیلد کنیم.
👇
و اولین بار که میخواین ران کنین به این شکل کانتینر ها رو بسازین:
Simple Way:
Using docker-compose:
حالا لایه اول ایمیج شما rebuild شده و از ایمیجتون یک کانتر در حال ران هست.
#docker #ubuntu #update #upgrade #image #compose
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
فرض کنید یک ایمیج Ubuntu نسخه 18 دارید و پروژتون درش قرار داره. همه چیز اوکیه و حالا میخواید اون Ubuntu 18 رو اپدیت کنید به نسخه 20.
شاید خیلیا تون فکر کنید که خب کاری نداره. میریم توی کانتینر این خط ها رو ران میکنیم:
$ sudo apt-get upgrade
$ sudo dist-upgrade
اما.. نه!! به 2 دلیل.
1. شما الان در یک کانتینر قرار داری و تغییراتی که اعمال میکنی به روی کانتینر اعمال میشه. (مگر اینکه ای کانتینر یک ایمیج دیگه بسازین)
2. ممکنه در روند اپدیت، تعدادی از پکیج های اساسی اپدیت نشن که ممکنه واستون مشکل ساز شه.
خب چیکار کنیم؟ معمولا افرادی که یکم حرفه ای تر دنبال میکنن، از docker-compose برای ران گرفتن از ایمیج هاشون استفاده میکنن. یک سری هم هستن که دستی اینکارو میکنن و فرقی نداره.
شما باید Dockerfile خودتون رو ادیت کنید. همونطور که قبلا گفتیم، هر ایمیج از بیس ایمیجی استفاده میکنه. کافیه نسخه base image رو تغییر بدیم و یک بار دیگه بیلد کنیم.
FROM ubuntu:18
👇
FROM ubuntu:20
و اولین بار که میخواین ران کنین به این شکل کانتینر ها رو بسازین:
Simple Way:
$ docker build && docker run -d -t ...
Using docker-compose:
$ docker-compose up -d --build
حالا لایه اول ایمیج شما rebuild شده و از ایمیجتون یک کانتر در حال ران هست.
#docker #ubuntu #update #upgrade #image #compose
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
کانتینر یا ایمیج؟؟ مسئله این است..
ممکنه اولین بار که با کانتینر ها آشنا شدین یه خورده درکش واستون سخت بوده و تفاوتش با ایمیج رو خوب متوجه نشدین. شایدم هنوز دنبال یک کوتیشن یا پارگراف هستین تا حسابی این موضوع رو از پایه یاد بگیرین.
خیلی از شما ممکنه با شی گرایی آشنا باشین و تا حدودی مثال هایی ازش دیده باشین. ایمیج ها رو کلاس در نظر بگیرین و هر کانتینر رو یک Instance از اون کلاس (ایمیج) در نظر بگیرین.
معماری کانتینر-بیس خیلی شبیه به OOP هست با یک تفاوت کوچیک. هر کانتینری که از ایمیج میسازید و ران میکنید یک سشن ساخته میشه که هر زمانی که بخواین میتونین کیلش کنین و از بین ببرینش.
پس به این نتیجه رسیدیم که هر کانتینر یک Instance از ایمیج هست. شما میتونید از هر ایمیج هر تعداد کانتینری که دوست دارین راه اندازی کنین. درست زمانی که یک ایمیج رو ران میکنید کانتینر ساخته میشه. ایمیج هم تعدادی لایه هست که از قبل طراحی شده (یا طراحی کردین).
برای دیدن ایمیج ها از کامند زیر استفاده کنین:
برای راه اندازی یک کانتینر از ایمیج بصورت detached کامند زیر رو ران کنید:
برای دیدن وضعیت کانتینر ها کامند زیر رو ران کنید:
فلگ
امیدوارم با ماهیت کانتینر ها و ایمیج ها بخوبی آشنا شده باشین :)
پینوشت: فلگ های خیلی زیادی در کامند های بالا وجود دارن که با دیدن
#docker #container #داکر #کانتینر #image #ایمیج
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
ممکنه اولین بار که با کانتینر ها آشنا شدین یه خورده درکش واستون سخت بوده و تفاوتش با ایمیج رو خوب متوجه نشدین. شایدم هنوز دنبال یک کوتیشن یا پارگراف هستین تا حسابی این موضوع رو از پایه یاد بگیرین.
خیلی از شما ممکنه با شی گرایی آشنا باشین و تا حدودی مثال هایی ازش دیده باشین. ایمیج ها رو کلاس در نظر بگیرین و هر کانتینر رو یک Instance از اون کلاس (ایمیج) در نظر بگیرین.
معماری کانتینر-بیس خیلی شبیه به OOP هست با یک تفاوت کوچیک. هر کانتینری که از ایمیج میسازید و ران میکنید یک سشن ساخته میشه که هر زمانی که بخواین میتونین کیلش کنین و از بین ببرینش.
پس به این نتیجه رسیدیم که هر کانتینر یک Instance از ایمیج هست. شما میتونید از هر ایمیج هر تعداد کانتینری که دوست دارین راه اندازی کنین. درست زمانی که یک ایمیج رو ران میکنید کانتینر ساخته میشه. ایمیج هم تعدادی لایه هست که از قبل طراحی شده (یا طراحی کردین).
برای دیدن ایمیج ها از کامند زیر استفاده کنین:
$ docker images
برای راه اندازی یک کانتینر از ایمیج بصورت detached کامند زیر رو ران کنید:
$ docker run -d <image>
برای دیدن وضعیت کانتینر ها کامند زیر رو ران کنید:
$ docker ps -a
فلگ
d-
در کامند ران، کانتینر رو در background راه اندازی میکنه و سشن اون پایدار خواهد بود. در غیر اینصورت کانتینر سریعا از بین میره.امیدوارم با ماهیت کانتینر ها و ایمیج ها بخوبی آشنا شده باشین :)
پینوشت: فلگ های خیلی زیادی در کامند های بالا وجود دارن که با دیدن
help
اون کامند میتونید ازشون استفاده کنید. ❤️#docker #container #داکر #کانتینر #image #ایمیج
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1