آموزش کامل داکر (docker)
داکر, به انگلیسی Docker یک نرم افزار automation برای deployment محیط نرم افزار است.
Image
یک image در Docker بستهای شامل تمام وابستگی ها و تنظیمات برای نصب و اجراء یک نرم افزار است.
نمایش image ها
با دستور images میتواند لیست image ها در docker را دید.
docker images
حذف image
با دستور rmi میتوانید image مورد نظر خود را حذف کنید.
docker images [IMAGE ID]
Container
هر container در Docker بستر اجراء یک Image است که مثل یک ماشین مجازی عمل میکند, و سیستم عامل میزبان را از داخل container مجزا میکند.
در یک Container برخلاف Virtual Machine که Hardware را با hypervisor شبیه سازی میکند, سخت افزار شبیه سازی نمیشود, و Container از سخت افزار و Kernel میزبان استفاده میکند, و تنها سیستم عامل شبیه سازی میشود.
نمایش containers ها
با دستور ps یا container ls میتوان لیست container ها را دید.
docker container ls
docker ps
توقف container
برای توقف container از دستور زیر استفاده میکنیم
docker stop [CONTAINER_ID]
Dockerfile
دستورات داکر در یک فایل متنی به نام Dockerfile ذخیر میشود که داکر با خواندن آن میتواند یک فایل image تولید کند.
FROM
فایل داکر باید با دستور FROM شروع شود؛ از این دستور برای pull کردن یک فایل image از سرور و build کردن آن استفاده میشود.
FROM IMAGE:VERSION
ARG
از دستور ARG برای ایجاد متغیر و استفاده از داده های آن استفاده میشود.
ARG CODE_VERSION=latest
FROM base:${CODE_VERSION}
COPY
دستور COPY فایل های داده شده را از مسیر <src> به مسیر مقصد <dest> در filesystem کانتینر کپی خواهد کرد.
COPY <src> <dest>
RUN
دستور RUN به ۲ شکل زیر استفاده میشود.
RUN <command>(shell form, the command is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows)RUN ["executable", "param1", "param2"](exec form)
دستور RUN دستور داده شده را در یک لایه جدید بالای image فعلی اجراء خواهد کرد, و نتیجه را به ما خواهد داد؛ نتیجه اجراء این دستور, برای مراحل بعد Dockerfile استفاده خواهد شد.
RUN ["/bin/bash", "-c", "echo hello"]
CMD
در هر Dockerfile, تنها یک دستور CMD میتواند وجود داشته باشد, و اگر بیش از ۱ دستور CMD استفاده کنید, تنها آخرین CMD اجراء خواهد شد؛ این دستور به شکل های زیر نوشته میشود.
CMD ["executable","param1","param2"](exec form, this is the preferred form)CMD ["param1","param2"](as default parameters to ENTRYPOINT)CMD command param1 param2(shell form)
FROM ubuntu
CMD echo "This is a test." | wc -