Docker

Страницата е създадена на: 5 юни 2021 и редактирана на:15 февруари 2022

Съдържание

Важни понятия Инсталиране на Docker Desktop в macOS Деинсталиране Създаване на първо примерно приложение-учебник Често използвани команди

Docker(колекция връзки), Play with Docker Classroom

Важни понятия

В Docker overview | Docker Documentation е посочено: "Docker е отворена платформа за разработване, доставка и изпълняване на приложения."

Чрез Docker разработеното приложение се доставя в т.наречен контейнер. Контейнерите са леки и съдържат всичко необходимо за стартиране на приложението. Контейнерите са изолирани и в един хост може да се изпълняват различни контейнери.

Image или образ е готов шаблон от който се създава контейнер. Образът съдържа изолирана файлове система, в която се налични необходимите изпълними, конфигурационни, библиотечни и др. файлове.

Контейнерът е изпълняван екземпляр на даден образ. Контейнери могат да се създават, стартират, спират, преместват или изтриват посредством програмен (API) или команден (CLI) интерфейс.

Docker daemon е софтуерът, който функционира на заден план върху машината хост и осигурява възможностите за инсталиране, обновяване и премахване на контейнери, стартиране и спиране на приложения, доставени в контейнерите.

Docker registry е хранилище за съхраняване на контейнери с цел тяхното разпространяване. Глобално, използвано от Docker по подразбиране хранилище е Docker Hub.

Docker client - команден интерфейс използван от разработчиците, разчитащи на Doker. Чрез него се осъществява връзка с Docker daemon и се осъществява ползването на Docker.

Docker Desktop - софтуерен пакет, който се инсталира на локалния компютър на разработчика с операционна система Windows, macOS или Linux и му осигурява необходимата среда за създаване и разпространяване на приложения с Docker. Включва: Docker Engine, Docker CLI client, Docker Compose, Docker Content Trust, Kubernetes, и Credential Helper.

Dockerfile - текстов файл, съдържащ команди, които последователно се изпълняват с цел създаване на контейнер. (Dockerfile reference | Docker Documentation).

Томове (Volumes) - директории от файловата система в машината на разработчика, които при стартиране на контейнер се монтират и във файловата система на контейнера. Така направени от контейнера промени в тези директории се запазват в машината на разработчика.

Командите RUN, COPY и ADD от Dockerfile създават различни нива (Docker Layers), като променят размера на създавания образ. Други команди създават междинни нива, които не се отразяват на големината на образа.

Инсталиране на Docker Desktop в macOS

От страница Install Docker Desktop on Mac | Docker Documentation се избира съответната версия според процесора на компютъра: Intel или Apple. Изтегленият файл е .dmg архив, който съдържа програмен пакет Docker.app. По обичайния за Mac начин инсталирането се свежда до влачене и пускане на Docker.app в директория /Applications. При ограничено място на вътрешния диск, вместо в директория /Applications, инсталирането може да се направи и върху външен диск.

Инсталиране върху външен диск може да стане и с команда:

brew install --cask docker --appdir=/Volumes/External_disk/Applications

в която External_disk е името на външния диск, на който има създадена директория Applications, предназначена за инсталиране на приложения.

Docker Desktop съхранява създаваните контейнери в голям файл ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw. С цел спестяване на място този файл може да се премести върху външен диск, а файлът във вътрешния диск да се замени със символична връзка.

Деинсталиране

Стартира се приложението Docker. Икона за опции се показва върху заглавната лента. Щраква се върху иконата и се избира Preferences. В прозореца на приложението се щраква бутона с изображение на буболечка (Troubleshoot). В новия прозорец се щраква бутон с надпис Uninstall. (How to easily install and uninstall docker on MacOs - Stack Overflow)

Ако инсталирането е извършено с команда brew install --cask docker, деинсталирането се извършва с:

brew uninstall --cask docker

Създаване на първо примерно приложение-учебник

Веднага след първото стартиране на Docker, може да се изпълни, както се предлага в неговия прозорец, команда от терминал:

docker run -d -p 80:80 docker/getting-started

Командата изтегля необходимото и стартира приложение, което се появява в главния прозорец на Docker Desktop и може да се отвори през браузър на адрес http://localhost

Това приложение представлява учебник за Docker. В него се описва:
- създаване на контейнер, предназначен за друго примерно Node.js приложение с използване Dockerfile;
- стартиране на контейнера и изпробване на приложението;
- извършване на промяна, преизграждане на контейнер, опит за стартиране;
- спиране и изтриване на контейнер, ново стартиране, забелязване на промяната;
- създаване на хранилище за контейнери в hub.docker.com;
- качване на контейнер с приложение в hub.docker.com;
- изпробване на качения контейнер в Play with Docker;
- използване на именуван том (named volume) за споделяне на данни между контейнери; - ...

Често използвани команди

Информация за всички команди - в Use the Docker command line | Docker Documentation.

docker build -t имеНаОбраз . - създаване на образ по команди от Dockerfile, намиращ се в текущата директория.

docker container ls - показване на списък на изпълняваните в момента контейнери.
docker container ls -a - показване на списък на всички изпълнени контейнери.
docker container run имеНаОбраз пътДоПриложение - създаване и стартиране на контейнер от даден образ и на приложение, което се съдържа в образа. След завършване изпълнението на приложението, контейнерът се затваря.
docker container run -it имеНаОбраз пътДоПриложение - опция -it оставя приложението да се изпълнява в интерактивен режим.

docker container start - стартиране на контейнер, имащо посочения идентификатор. Идентификаторът се вижда с команда docker container ls -a. Контейнерът се появява в списъка на изпълняваните контейнери, показван с команда docker container ls.
docker container exec команда - изпълняване на команда в стартиран контейнер.

docker container diff - показва списък на файловете, по които се различава контейнерът от образа, от който е създаден.

docker container commit - превръща контейнерът в нов образ.

docker image ls - показване списък на наличните образи.
docker image pull имеНаОбраз - изтегляне на образ от hub.docker.com.

docker ps - показване списък на стартираните контейнери.

docker run [опции] образ [команда] - изпълняване на команда в нов контейнер.

 

Copyright CC BY-ND 4.0.
Посещения на страницата: общо 320 днес 0
Направено с MyCMS.