اکوسیستم داکر توضیح داده شد – انجمن DEV

Summarize this content to 400 words in Persian Lang
اکوسیستم Docker از زمان راه اندازی Docker Engine در سال 2013 بسیار رشد کرده است – اکنون شامل ابزارها و چارچوب هایی است که تقریباً هر جنبه ای از توسعه و استقرار مبتنی بر کانتینر را ارائه می دهد. در اینجا واژه نامه مختصری از مهم ترین سرویس های Docker و نحوه تطبیق آنها با جریان های کاری توسعه مدرن ارائه شده است.
موتور داکر
Docker Engine هسته منبع باز پلتفرم کانتینر Docker است که به کاربران امکان می دهد برنامه های خود را از طریق تعاریف Dockerfile بسازند و کانتینری کنند. این یک برنامه کاربردی سمت مشتری با سه جزء اصلی است:
سرور در حال اجرا dockerd فرآیند دیمون
API برای برنامه های کاربردی خارجی برای برقراری ارتباط dockerd
را docker مشتری CLI
توسعه Docker Engine به پروژه Moby، یک چارچوب متن باز که توسط تیم Docker نگهداری می شود، منتقل شده است. قبل از مهاجرت در سال 2020، Docker Engine یک فورک نگهداری شده از پروژه Moby بود که اجزای منتخبی از آن را ارائه می کرد.
Docker Desktop
Docker Desktop یک برنامه Docker همه کاره برای مک، لینوکس و ویندوز است. چند قابلیت کلیدی Docker را با هم ترکیب می کند و رابط کاربری گرافیکی آن یک جزء بصری به گردش کار توسعه Docker اضافه می کند.
یکی از مهمترین امکانات Docker Desktop این است که نصب و ارتقاء ابزارهای Docker همراه خود از جمله Compose، Docker Engine و Docker Scout را انجام میدهد.
برگههای Docker Desktop به پیمایش و مدیریت کانتینرها، ساختها، حجمها و تصاویر موجود کمک میکنند. استفاده از Docker Desktop برای مدیریت برنامهها واقعاً به اولویت شخصی مربوط میشود: کاربران میتوانند بسیاری از موارد مشابه را با Docker's CLI انجام دهند، اما برخی ممکن است زمینه بصری را که رابط کاربری گرافیکی ارائه میکند ترجیح دهند.
Docker Compose
Docker Compose یک ابزار ارکستراسیون برای برنامه های Dockerized تک و چند کانتینری است. این به کاربران امکان می دهد یک یا چند سرویس و گزینه ها، حجم ها و شبکه های لازم را تعریف و پیکربندی کنند. سپس Compose راه اندازی و هماهنگی برنامه را با docker compose up فرمان
با استفاده از a compose.yml فایل نسبت به کپی/پیست کردن طولانی Docker بسیار ارجح است build و run دستورات با پرچم ها و گزینه های همراه خود. در اینجا یک نمونه فایل Compose برای یک برنامه کاربردی با پنج سرویس آمده است:
version: ‘3’
services:
frontend:
labels:
shipyard.route: ‘/’
build: ‘frontend’
env_file:
– frontend/frontend.env
volumes:
– ‘./frontend/src:/app/src’
– ‘./frontend/public:/app/public’
ports:
– ‘3000:3000’
backend:
labels:
shipyard.route: ‘/api’
build: ‘backend’
environment:
DATABASE_URL: ‘postgres://obscure-user:obscure-password@postgres/app’
DEV: ${DEV}
FLASK_DEBUG: ‘1’
volumes:
– ‘./backend/filesystem/entrypoints:/entrypoints:ro’
– ‘./backend/migrations:/srv/migrations’
– ‘./backend/src:/srv/src:ro’
ports:
– ‘8080:8080’
worker:
labels:
shipyard.init: ‘poetry run flask db upgrade’
build: ‘backend’
environment:
DATABASE_URL: ‘postgres://obscure-user:obscure-password@postgres/app’
DEV: ${DEV}
FLASK_DEBUG: ‘1’
command: ‘/entrypoints/worker.sh’
volumes:
– ‘./backend/filesystem/entrypoints:/entrypoints:ro’
– ‘./backend/migrations:/srv/migrations’
– ‘./backend/src:/srv/src:ro’
postgres:
image: ‘postgres:9.6-alpine’
environment:
POSTGRES_USER: ‘obscure-user’
POSTGRES_PASSWORD: ‘obscure-password’
POSTGRES_DB: ‘app’
PGDATA: ‘/var/lib/postgresql/data/pgdata’
volumes:
– ‘postgres:/var/lib/postgresql/data’
ports:
– ‘5432’
redis:
image: ‘redis:5.0-alpine’
ports:
– ‘6379’
volumes:
postgres:
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
Compose بهترین روش برای توسعه محلی با Docker است: راه اندازی آسان و هماهنگ سازی سبک وزن را برای برنامه ها در تقریباً در هر مقیاسی ارائه می دهد.
Docker Build Cloud
Docker Build Cloud به کاربران Docker اجازه میدهد تا ساختهای خود را برای اجرای سریعتر به ابر برون سپاری کنند. به صورت محلی، ساختها بهشدت به مشخصات دستگاه شما وابسته هستند و محاسبات ارزشمندی را مصرف میکنند که ممکن است برای سایر کارهای توسعه با منابع فشرده نیاز داشته باشید. Build Cloud ساختمان تصویر را از دستگاه شما خارج میکند، و هندلینگ مرتبه بزرگی را سریعتر میسازد. و به صورت موازی
منبع: مایکل ایروین
یکی دیگر از مزایای فنی اصلی Build Cloud، حافظه پنهان مشترک آن است – ساختها در تیم شما سریعتر اجرا میشوند، زیرا مصنوعات یکسان دوباره مورد استفاده قرار میگیرند و یک قدم فراتر از ذخیره لایه تصویر Docker است.
داکر هاب
Docker Hub رجیستری کانتینر Docker است. این یک سرویس از راه دور و مبتنی بر ابر است که در آن کاربران می توانند تصاویر Docker را برای استفاده شخصی یا عمومی فشار دهند و بکشند.
می توانید با استفاده از Docker CLI از داکر هاب فشار داده و بکشید. به عنوان مثال، می توانید با رفتن به ترمینال و اجرا، تصویر Node.js را از داکر هاب (تصویر بالا) به دستگاه محلی خود بکشید. docker pull node.
تیم ها ممکن است از Docker Hub برای توزیع تصاویر برای توسعه/آزمایش/ارجاع یا انتشار آخرین نسخه در پایگاه کاربری خود استفاده کنند. تصاویر نسخه با برچسبها کنترل میشوند و به کاربران اجازه میدهند نسخه دقیق تصویر مورد نیاز خود را مشخص کنند یا برای دریافت آخرین نسخه، برچسبها را حذف کنند.
مخازن Docker Hub گروهی از تصاویر مرتبط را که با برچسب متمایز می شوند، نگهداری می کنند.
پیشاهنگ داکر
Docker Scout سرویسی است که به تازگی برای اسکن آسیب پذیری تصویر Docker راه اندازی شده است. وابستگی های یک تصویر را تجزیه و تحلیل می کند و بینش / تجزیه و تحلیل مفیدی را برای امنیت زنجیره تامین نرم افزار ارائه می دهد. Scout به یک SBOM پیوست شده ارجاع می دهد (صورتحساب مواد نرم افزاری) اما همچنین توانایی ایجاد یکی از تصویر ارائه شده را دارد.
در اینجا یک نمونه از اسناد پیشاهنگی برای اسکن وضعیت انطباق تصویر آورده شده است:
$ docker scout quickview
…
Policy status FAILED (2/6 policies met, 2 missing data)
Status │ Policy │ Results
─────────┼──────────────────────────────────────────────┼──────────────────────────────
✓ │ No copyleft licenses │ 0 packages
! │ Default non-root user │
! │ No fixable critical or high vulnerabilities │ 2C 16H 0M 0L
✓ │ No high-profile vulnerabilities │ 0C 0H 0M 0L
? │ No outdated base images │ No data
? │ Supply chain attestations │ No data
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
Scout را می توان به صورت رایگان در تعداد محدودی از مخازن استفاده کرد، یا از طریق سازمان خود برای استفاده با مخازن بیشتر خریداری کرد.
فراتر از Dockerverse
داکر دهه گذشته را صرف ارائه ابزارهای مورد نیاز توسعه دهندگان برای تقریباً هر جنبه از توسعه کانتینری کرده است. اما پس از خروج ویژگی های شما از محیط توسعه محلی شما چه اتفاقی می افتد؟ کشتیسازی برنامه Dockerized شما را میگیرد و فایل Docker Compose شما را به مانیفستهای Kubernetes برای محیطهای زودگذر فول پشته در هر روابط عمومی منتقل میکند. به این ترتیب، بدون تمرکز بر زیرساخت های زیربنایی، عملکردی شبیه تولید را که نیاز دارید، دریافت خواهید کرد.
اکوسیستم Docker از زمان راه اندازی Docker Engine در سال 2013 بسیار رشد کرده است – اکنون شامل ابزارها و چارچوب هایی است که تقریباً هر جنبه ای از توسعه و استقرار مبتنی بر کانتینر را ارائه می دهد. در اینجا واژه نامه مختصری از مهم ترین سرویس های Docker و نحوه تطبیق آنها با جریان های کاری توسعه مدرن ارائه شده است.
موتور داکر
Docker Engine هسته منبع باز پلتفرم کانتینر Docker است که به کاربران امکان می دهد برنامه های خود را از طریق تعاریف Dockerfile بسازند و کانتینری کنند. این یک برنامه کاربردی سمت مشتری با سه جزء اصلی است:
- سرور در حال اجرا
dockerd
فرآیند دیمون - API برای برنامه های کاربردی خارجی برای برقراری ارتباط
dockerd
- را
docker
مشتری CLI
توسعه Docker Engine به پروژه Moby، یک چارچوب متن باز که توسط تیم Docker نگهداری می شود، منتقل شده است. قبل از مهاجرت در سال 2020، Docker Engine یک فورک نگهداری شده از پروژه Moby بود که اجزای منتخبی از آن را ارائه می کرد.
Docker Desktop
Docker Desktop یک برنامه Docker همه کاره برای مک، لینوکس و ویندوز است. چند قابلیت کلیدی Docker را با هم ترکیب می کند و رابط کاربری گرافیکی آن یک جزء بصری به گردش کار توسعه Docker اضافه می کند.
یکی از مهمترین امکانات Docker Desktop این است که نصب و ارتقاء ابزارهای Docker همراه خود از جمله Compose، Docker Engine و Docker Scout را انجام میدهد.
برگههای Docker Desktop به پیمایش و مدیریت کانتینرها، ساختها، حجمها و تصاویر موجود کمک میکنند. استفاده از Docker Desktop برای مدیریت برنامهها واقعاً به اولویت شخصی مربوط میشود: کاربران میتوانند بسیاری از موارد مشابه را با Docker's CLI انجام دهند، اما برخی ممکن است زمینه بصری را که رابط کاربری گرافیکی ارائه میکند ترجیح دهند.
Docker Compose
Docker Compose یک ابزار ارکستراسیون برای برنامه های Dockerized تک و چند کانتینری است. این به کاربران امکان می دهد یک یا چند سرویس و گزینه ها، حجم ها و شبکه های لازم را تعریف و پیکربندی کنند. سپس Compose راه اندازی و هماهنگی برنامه را با docker compose up
فرمان
با استفاده از a compose.yml
فایل نسبت به کپی/پیست کردن طولانی Docker بسیار ارجح است build
و run
دستورات با پرچم ها و گزینه های همراه خود. در اینجا یک نمونه فایل Compose برای یک برنامه کاربردی با پنج سرویس آمده است:
version: '3'
services:
frontend:
labels:
shipyard.route: '/'
build: 'frontend'
env_file:
- frontend/frontend.env
volumes:
- './frontend/src:/app/src'
- './frontend/public:/app/public'
ports:
- '3000:3000'
backend:
labels:
shipyard.route: '/api'
build: 'backend'
environment:
DATABASE_URL: 'postgres://obscure-user:obscure-password@postgres/app'
DEV: ${DEV}
FLASK_DEBUG: '1'
volumes:
- './backend/filesystem/entrypoints:/entrypoints:ro'
- './backend/migrations:/srv/migrations'
- './backend/src:/srv/src:ro'
ports:
- '8080:8080'
worker:
labels:
shipyard.init: 'poetry run flask db upgrade'
build: 'backend'
environment:
DATABASE_URL: 'postgres://obscure-user:obscure-password@postgres/app'
DEV: ${DEV}
FLASK_DEBUG: '1'
command: '/entrypoints/worker.sh'
volumes:
- './backend/filesystem/entrypoints:/entrypoints:ro'
- './backend/migrations:/srv/migrations'
- './backend/src:/srv/src:ro'
postgres:
image: 'postgres:9.6-alpine'
environment:
POSTGRES_USER: 'obscure-user'
POSTGRES_PASSWORD: 'obscure-password'
POSTGRES_DB: 'app'
PGDATA: '/var/lib/postgresql/data/pgdata'
volumes:
- 'postgres:/var/lib/postgresql/data'
ports:
- '5432'
redis:
image: 'redis:5.0-alpine'
ports:
- '6379'
volumes:
postgres:
Compose بهترین روش برای توسعه محلی با Docker است: راه اندازی آسان و هماهنگ سازی سبک وزن را برای برنامه ها در تقریباً در هر مقیاسی ارائه می دهد.
Docker Build Cloud
Docker Build Cloud به کاربران Docker اجازه میدهد تا ساختهای خود را برای اجرای سریعتر به ابر برون سپاری کنند. به صورت محلی، ساختها بهشدت به مشخصات دستگاه شما وابسته هستند و محاسبات ارزشمندی را مصرف میکنند که ممکن است برای سایر کارهای توسعه با منابع فشرده نیاز داشته باشید. Build Cloud ساختمان تصویر را از دستگاه شما خارج میکند، و هندلینگ مرتبه بزرگی را سریعتر میسازد. و به صورت موازی
منبع: مایکل ایروین
یکی دیگر از مزایای فنی اصلی Build Cloud، حافظه پنهان مشترک آن است – ساختها در تیم شما سریعتر اجرا میشوند، زیرا مصنوعات یکسان دوباره مورد استفاده قرار میگیرند و یک قدم فراتر از ذخیره لایه تصویر Docker است.
داکر هاب
Docker Hub رجیستری کانتینر Docker است. این یک سرویس از راه دور و مبتنی بر ابر است که در آن کاربران می توانند تصاویر Docker را برای استفاده شخصی یا عمومی فشار دهند و بکشند.
می توانید با استفاده از Docker CLI از داکر هاب فشار داده و بکشید. به عنوان مثال، می توانید با رفتن به ترمینال و اجرا، تصویر Node.js را از داکر هاب (تصویر بالا) به دستگاه محلی خود بکشید. docker pull node
.
تیم ها ممکن است از Docker Hub برای توزیع تصاویر برای توسعه/آزمایش/ارجاع یا انتشار آخرین نسخه در پایگاه کاربری خود استفاده کنند. تصاویر نسخه با برچسبها کنترل میشوند و به کاربران اجازه میدهند نسخه دقیق تصویر مورد نیاز خود را مشخص کنند یا برای دریافت آخرین نسخه، برچسبها را حذف کنند.
مخازن Docker Hub گروهی از تصاویر مرتبط را که با برچسب متمایز می شوند، نگهداری می کنند.
پیشاهنگ داکر
Docker Scout سرویسی است که به تازگی برای اسکن آسیب پذیری تصویر Docker راه اندازی شده است. وابستگی های یک تصویر را تجزیه و تحلیل می کند و بینش / تجزیه و تحلیل مفیدی را برای امنیت زنجیره تامین نرم افزار ارائه می دهد. Scout به یک SBOM پیوست شده ارجاع می دهد (صورتحساب مواد نرم افزاری) اما همچنین توانایی ایجاد یکی از تصویر ارائه شده را دارد.
در اینجا یک نمونه از اسناد پیشاهنگی برای اسکن وضعیت انطباق تصویر آورده شده است:
$ docker scout quickview
...
Policy status FAILED (2/6 policies met, 2 missing data)
Status │ Policy │ Results
─────────┼──────────────────────────────────────────────┼──────────────────────────────
✓ │ No copyleft licenses │ 0 packages
! │ Default non-root user │
! │ No fixable critical or high vulnerabilities │ 2C 16H 0M 0L
✓ │ No high-profile vulnerabilities │ 0C 0H 0M 0L
? │ No outdated base images │ No data
? │ Supply chain attestations │ No data
Scout را می توان به صورت رایگان در تعداد محدودی از مخازن استفاده کرد، یا از طریق سازمان خود برای استفاده با مخازن بیشتر خریداری کرد.
فراتر از Dockerverse
داکر دهه گذشته را صرف ارائه ابزارهای مورد نیاز توسعه دهندگان برای تقریباً هر جنبه از توسعه کانتینری کرده است. اما پس از خروج ویژگی های شما از محیط توسعه محلی شما چه اتفاقی می افتد؟ کشتیسازی برنامه Dockerized شما را میگیرد و فایل Docker Compose شما را به مانیفستهای Kubernetes برای محیطهای زودگذر فول پشته در هر روابط عمومی منتقل میکند. به این ترتیب، بدون تمرکز بر زیرساخت های زیربنایی، عملکردی شبیه تولید را که نیاز دارید، دریافت خواهید کرد.