جدول محتوا
مقدمه نصب داکر در centos
مقاله پیش رو نصب داکر در centOS را توضیح می دهد. Docker ابزاری است که اجرای فرآیندهای برنامه را در یک کانتینر ساده و آسان میکند و مانند ماشینهای مجازی هستند، فقط قابل حملتر، منابع دوستانهتر و بیشتر به سیستم عامل میزبان وابسته هستند.
دو روش برای نصب Docker بر روی CentOS 7 وجود دارد. یک روش شامل نصب آن بر روی یک نصب موجود از سیستم عامل است. مورد دیگر شامل چرخاندن یک سرور با ابزاری به نام Docker Machine است که Docker را به طور خودکار روی آن نصب می کند.
در این آموزش، نحوه نصب و استفاده از آن را بر روی یک نصب موجود از CentOS 7 خواهید آموخت.
مرحله 1 – نحوه نصب Docker
بسته نصبی Docker موجود در مخزن رسمی CentOS 7 ممکن است آخرین نسخه نباشد. به منظور نصب داکر در centos و برای دریافت آخرین و بهترین نسخه، Docker را از مخزن رسمی Docker نصب کنید. این بخش به شما نشان می دهد که چگونه این کار را انجام دهید. ابتدا، بیایید پایگاه داده بسته را به روز کنیم:
sudo yum check-update
حالا این دستور را اجرا کنید. مخزن رسمی Docker را اضافه می کند، آخرین نسخه Docker را دانلود کرده و آن را نصب می کند:
curl -fsSL https://get.docker.com/ | sh
پس از اتمام نصب، Daemon Docker را راه اندازی کنید:
sudo systemctl start docker
بررسی کنید که در حال اجرا است:
sudo systemctl status docker
خروجی باید مشابه موارد زیر باشد و نشان دهد که سرویس فعال و در حال اجرا است:
docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2023-03-12 17:44:04 +0330; 30min ago Docs: https://docs.docker.com Main PID: 6120 (dockerd) CGroup: /system.slice/docker.service └─6120 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
در نهایت، مطمئن شوید که در هر راه اندازی مجدد سرور شروع می شود:
sudo systemctl enable docker
اکنون با نصب Docker نه تنها سرویس Docker (دمون) بلکه docker
ابزار خط فرمان یا کلاینت Docker را نیز در اختیار شما قرار می دهد. docker
در ادامه این آموزش نحوه استفاده از دستور را بررسی خواهیم کرد .
مرحله 2 – اجرای دستور Docker بدون Sudo (اختیاری)
بهطور پیشفرض، اجرای docker
به دسترسی روت نیاز دارد – یعنی باید پیشوند دستور را با sudo
اجرا نمایید. همچنین می تواند توسط یک کاربر در گروه docker اجرا شود که به طور خودکار در هنگام نصب Docker ایجاد می شود. اگر بخواهید docker
دستور را بدون پیشوند با sudo
یا بدون قرار گرفتن در گروه docker اجرا کنید، خروجی مانند زیر دریافت خواهید کرد:
Output docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'.
اگر می خواهید sudo
هر زمان که دستور را اجرا می کنید از تایپ کردن خودداری کنید docker
، نام کاربری خود را به گروه docker اضافه کنید:
sudo usermod -aG docker $(whoami)
برای فعال کردن این تغییر، باید از Droplet خارج شوید و به عنوان همان کاربر دوباره وارد شوید.
اگر میخواهید کاربری را به docker
گروهی اضافه کنید که با آن وارد نشدهاید، نام کاربری آن را صریحاً با استفاده از دستور زیر وارد نمایید:
sudo usermod -aG docker username
بقیه این مقاله فرض می کند که شما docker
را به عنوان یک کاربر در گروه کاربر docker اجرا می کنید. اگر نمیخواهید، لطفاً دستورات را با sudo
اجرا نمایید.
مرحله 3 – نحوه نصب داکر در centos و استفاده از دستور Docker
با نصب و کار کردن Docker، اکنون زمان آن است که با ابزار خط فرمان آشنا شوید. استفاده docker
از ارسال زنجیره ای از گزینه ها و دستورات فرعی به دنبال آن آرگومان است. نحوه کار به این شکل است:
docker [option] [command] [arguments]
برای مشاهده تمام دستورات فرعی موجود، تایپ کنید:
docker
از Docker 23.0.1، لیست کاملی از دستورات فرعی موجود شامل موارد زیر است:
attach Attach to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes on a container's filesystem events Get real time events from the server exec Run a command in a running container export Export a container's filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on a container or image kill Kill a running container load Load an image from a tar archive or STDIN login Log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container network Manage Docker networks pause Pause all processes within a container port List port mappings or a specific mapping for the CONTAINER ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart a container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop a running container tag Tag an image into a repository top Display the running processes of a container unpause Unpause all processes within a container update Update configuration of one or more containers version Show the Docker version information volume Manage Docker volumes wait Block until a container stops, then print its exit code
برای مشاهده سوئیچ های موجود برای یک دستور خاص، تایپ کنید:
docker docker-subcommand --help
برای مشاهده اطلاعات کل سیستم:
docker info
مرحله 4 – کار با Docker Images
کانتینرهای داکر از Image های داکر اجرا می شوند. به طور پیش فرض، این تصاویر را از Docker Hub، یک رجیستری Docker که توسط Docker، شرکتی که پروژه Docker را مدیریت می کند، دریافت می کند. هرکسی میتواند تصاویر Docker خود را در Docker Hub بسازد و میزبانی کند، بنابراین اکثر برنامهها و توزیعهای لینوکس برای اجرای کانتینرهای Docker نیاز دارید که تصاویری دارند که در Docker Hub میزبانی میشوند.
برای بررسی اینکه نصب داکر در centos قابل انجام است و آیا میتوانید به ایمیج از Docker Hub دسترسی داشته باشید و آنها را دانلود کنید، تایپ کنید:
docker run hello-world
خروجی، که باید شامل موارد زیر باشد، باید نشان دهد که Docker به درستی کار می کند:
Output Hello from Docker. This message shows that your installation appears to be working correctly.
با استفاده از دستور زیر فرمان می توانید ایمیج موجود در Docker Hub را جستجو کنید. به عنوان مثال، برای جستجوی ایمیج CentOS، تایپ کنید:
docker search centos
اسکریپت Docker Hub را میخزد و فهرستی از تمام ایمیج هایی که نام آنها با رشته جستجو مطابقت دارد را برمیگرداند. در این حالت خروجی مشابه این خواهد بود:
Output NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 2224 [OK] jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 22 [OK] jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 17 [OK] million12/centos-supervisor Base CentOS-7 with supervisord launcher, h... 11 [OK] nimmis/java-centos This is docker images of CentOS 7 with dif... 10 [OK] torusware/speedus-centos Always updated official CentOS docker imag... 8 [OK] nickistre/centos-lamp LAMP on centos setup 3 [OK]
در ستون OFFICIAL ، OK ایمیجی را نشان می دهد که توسط شرکت پشتیبان پروژه ساخته و پشتیبانی می شود. هنگامی که ایمیجی را که می خواهید استفاده کنید شناسایی کردید، می توانید آن را با استفاده از pull
دستور فرعی در رایانه خود بارگیری کنید، مانند:
docker pull centos
پس از بارگیری یک ایمیج، می توانید با استفاده از ایمیج دانلود شده با run
دستور فرعی، یک کانتینر را اجرا کنید. docker
اگر هنگام اجرای دستور فرعی ایمیجی دانلود نشده باشد، سرویس گیرنده Docker ابتدا ایمیج را دانلود می کند، سپس یک کانتینر را با استفاده از آن اجرا می کند:
docker run centos
برای مشاهده ایمیج هایی که در رایانه شما دانلود شده اند، تایپ کنید:
docker images
مرحله 5 – اجرای یک Docker Container
با نصب داکر در centos کانتینری hello-world
که در مرحله قبل اجرا کردید نمونه ای از کانتینری است که پس از ارسال یک پیام آزمایشی اجرا می شود و خارج می شود. با این حال، کانتینرها می توانند بسیار مفیدتر از آن باشند و می توانند تعاملی باشند. پس از همه، آنها شبیه به ماشین های مجازی هستند، فقط منابع دوستانه تر هستند.
به عنوان مثال، اجازه دهید یک کانتینر را با استفاده از آخرین ایمیج CentOS اجرا کنیم. ترکیب سوئیچ های -i و -t به شما امکان دسترسی تعاملی پوسته به کانتینر را می دهد:
docker run -it centos
خط فرمان شما باید تغییر کند تا این واقعیت را منعکس کند که اکنون در داخل کانتینر کار می کنید و باید به این شکل باشد:
Output [root@59839a1b7de2 /]#
هم اکنون داخل کانتینر موردنظر هستید و می توانید دستورات را داخل آن اضافه نمایید: به عنوان مثال، اجازه دهید سرور MariaDB را در کانتینر در حال اجرا نصب کنیم. نیازی به پیشوند sudo
نیست:
yum install mariadb-server
مرحله 6 – انجام تغییرات در یک کانتینر به یک ایمیج Docker
پس از نصب داکر در centos و هنگامی که یک ایمیج Docker را راه اندازی می کنید، می توانید مانند یک ماشین مجازی فایل ها را ایجاد، اصلاح و حذف کنید. تغییراتی که ایجاد می کنید فقط برای آن کانتینر اعمال می شود. شما می توانید آن را شروع و متوقف کنید، اما هنگامی که آن را با docker rm
دستور از بین ببرید، تغییرات برای همیشه از بین می روند.
این بخش به شما نشان می دهد که چگونه وضعیت یک کانتینر را به عنوان یک ایمیج داکر جدید ذخیره کنید.
پس از نصب سرور MariaDB در داخل کانتینر CentOS، اکنون یک کانتینر در حال اجرا از یک ایمیج هستید، اما کانتینر با ایمیج که برای ایجاد آن استفاده کرده اید متفاوت است.
برای ذخیره وضعیت کانتینر به عنوان یک ایمیج جدید، ابتدا از آن خارج شوید:
exit
سپس با استفاده از دستور زیر تغییرات را در یک نمونه ایمیج جدید Docker انجام دهید. سوئیچ -m برای پیام commit است که به شما و دیگران کمک می کند تا بدانید چه تغییراتی ایجاد کرده اید، در حالی که -a برای تعیین نویسنده استفاده می شود.
docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name
مثلا:
docker commit -m "added mariadb-server" -a "Sunday Ogwu-Chinuwa" 59839a1b7de2 finid/centos-mariadb
پس از تکمیل این عملیات، فهرست کردن ایمیج Docker اکنون در رایانه شما باید ایمیج جدید و همچنین ایمیج قدیمی که از آن مشتق شده است را نشان دهد:
docker images
خروجی باید از این نوع باشد:
Output REPOSITORY TAG IMAGE ID CREATED SIZE finid/centos-mariadb latest 23390430ec73 6 seconds ago 424.6 MB centos latest 778a53015523 5 weeks ago 196.7 MB hello-world latest 94df4f0ce8a4 2 weeks ago 967 B
در مثال بالا، centos-mariadb ایمیج جدیدی است که از ایمیج CentOS موجود از Docker Hub مشتق شده است. تفاوت اندازه نشان دهنده تغییرات ایجاد شده است. و در این مثال تغییر این بود که MariaDB نصب شده بود. بنابراین دفعه بعد که نیاز دارید یک کانتینر را با استفاده از CentOS با سرور MariaDB از پیش نصب شده اجرا کنید، فقط می توانید از ایمیج جدید استفاده کنید. همچنین ممکن است ایمیج از فایل هایی که Dockerfile نامیده می شود ساخته شوند.
مرحله 7 – فهرست کردن کانتینرهای Docker
پس از مدتی استفاده از Docker، کانتینرهای فعال (در حال اجرا) و غیرفعال زیادی در رایانه خود خواهید داشت. برای مشاهده موارد فعال از:
docker ps
خروجی مشابه زیر را خواهید دید:
Output CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES i7c79cc556dd centos "/bin/bash" 3 hours ago Up 3 hours silly_spence
برای مشاهده همه کانتینرها – فعال و غیرفعال، -a
سوئیچ را به آن اضافه کنید:
docker ps -a
برای مشاهده آخرین کانتینری که ایجاد کرده اید، -l
سوئیچ را به آن منتقل کنید:
docker ps -l
توقف یک کانتینر در حال اجرا یا فعال به سادگی تایپ کردن است:
docker stop container-id
container-id
را می توان در خروجی docker ps
دستور یافت.
نتیجه
مطالب Docker بسیار بیشتر از آنچه در این مقاله ارائه شد وجود دارد، اما این مقاله برای شروع کار با آن در CentOS 7 کافی می باشد. مانند بسیاری از پروژه های منبع باز، Docker از یک پایگاه کد در حال توسعه سریع ساخته شده است، که می توانید از سایت منبع آخرین اطلاعات را بررسی نمایید.