لینوکس ۳۰۵؛ شب ۴۱: Docker Engine، daemon و اختیار socket
فهرست نوشته
CLI Docker درخواست مدیریت را به daemon میفرستد؛ دسترسی به socket معمولاً اختیار وسیع میزبان میدهد. امشب Engine را در VM تازه نصب و اتصال client/server را بررسی میکنیم.
این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.
جایگاه در دوره: هدفهای 352.3 آزمون 305-300.
محیط: docker-a با Ubuntu 24.04، مخزن universe فعال، بدون Docker CE/Podman جایگزین یا دادهٔ قبلی. مسیر این درس بستههای Ubuntu است؛ مسیر رسمی Docker CE را با آن مخلوط نکن.
sudo apt update
apt-cache policy docker.io docker-compose-v2
sudo apt install docker.io docker-compose-v2
sudo systemctl enable --now docker
sudo docker version
sudo docker info
sudo stat /var/run/docker.sock
sudo docker context ls
نسخهٔ client و server، storage driver، cgroup driver و root directory را ثبت کن. شمارهٔ package distribution لزوماً آخرین release upstream نیست؛ گزینههای آینده را در help همان نسخه بررسی کن.
در نمونههای این بخش sudo مسیر اتصال به daemon سیستم را واضح نگه میدارد. عضو کردن کاربر در گروه docker عملاً دسترسی مدیریت rootful میدهد؛ آن را «کاربر عادی کماختیار» حساب نکن. rootless daemon در شب ۴۶ محیط و socket جدا دارد.
سه object متفاوت#
image الگوی لایههای filesystem است؛ container نمونهٔ دارای تنظیم و لایهٔ writable؛ volume محل دادهٔ مستقل. حذف container الزاماً image یا volume را پاک نمیکند. daemon نیز registry نیست: registry artifact میدهد، daemon اجرای محلی را مدیریت میکند.
sudo docker image ls
sudo docker ps -a
sudo docker volume ls
sudo docker network ls
بررسی: docker version باید هر دو بخش Client و Server را نشان دهد؛ نبود Server میتواند از daemon خاموش، context اشتباه یا permission باشد. خطا را با chmod 666 socket یا TCP بیگواهی رفع نکن.
بازگشت: VM پایه را snapshot کن. stop daemon میتواند workload را قطع کند؛ قبل آن containerها و restart policy را بشناس. uninstall package، data directory را خودکار به backup تبدیل نمیکند.
منبع: بستهٔ Compose در Ubuntu ، مسیر Docker CE برای Ubuntu ، اختیار مدیریت Docker .