Docker

Страницата е създадена на: 5 юни 2021 и редактирана на: 3 декември 2022

Съдържание

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

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

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

В Docker Documentation - Guides : Docker overview е посочено: "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).

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

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

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

От страница Docker Documentation - Manuals : Install Docker Desktop on Mac се избира съответната версия според процесора на компютъра: 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. (През Finder директория: ~/Library/Containers/com.docker.docker може да се вижда като ~/Library/Containers/Docker.) С цел спестяване на място този файл може да се премести върху външен диск, а файлът във вътрешния диск да се замени със символична връзка.

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

Стартира се приложението 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) за споделяне на данни между контейнери; - ...

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

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

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

docker container commit идентификаторНаКонтейнер - превръща контейнерът в нов образ.

docker container ls - показване на списък на изпълняваните в момента контейнери. В списъка се виждат идентификаторите на контейнерите и др. данни.
docker container ls -a - показване на списък на всички изпълнени контейнери.

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

docker start идентификаторНаКонтейнер - стартиране на контейнер, имащо посочения идентификатор.
docker stop идентификаторНаКонтейнер - спира изпълнението на контейнер.

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

docker exec идентификаторНаКонтейнер команда - изпълнява команда в контейнер.

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

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

docker rm идентификаторНаКонтейнер - изтриване на контейнер.

docker run [опции] имеНаОбраз [команда] - стартиране на нов контейнер от посочения образ, и изпълняване на команда в него.
Опциите могат да бъдат: -d - detached mode, -p - портове, -v - посочване на том и др.,
например: -dp 3000:3000 -v todo-db:/etc/todos.

docker volume create имеНаТом - създаване на том.
docker volume inspect имеНаТом - показва информация за тома.

 

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