Docker — это платформа контейнеризации, которая позволяет вам упаковывать и доставлять ваши приложения согласованным образом. Это упрощает развертывание и запуск ваших приложений в любой среде, будь то на вашем локальном компьютере, облачной платформе или чистом сервере.
Контейнер — это легкий, автономный исполняемый пакет программного обеспечения, который включает в себя все необходимое для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки. Контейнеры изолируют программное обеспечение от его окружения, например различий между средами разработки и промежуточной среды, и помогают уменьшить конфликты между различными приложениями, работающими на одном хосте.
Чтобы использовать Docker, вам необходимо установить Docker Engine на свой компьютер. Docker Engine — это набор демонов и инструментов, которые запускаются на вашем компьютере и позволяют создавать, запускать и управлять контейнерами Docker.
Вот некоторые преимущества использования Docker:
- Портативность. Контейнеры переносимы, то есть их можно запускать на любой машине, на которой установлен Docker. Это упрощает развертывание приложений в различных средах.
- Воспроизводимость: Контейнеры воспроизводимы, а это означает, что вы всегда можете воссоздать одну и ту же среду для своего приложения. Это важно для тестирования и отладки.
- Изоляция: контейнеры изолированы друг от друга, что означает, что они не используют общие ресурсы и не мешают друг другу. Это позволяет безопасно запускать разные приложения на одном компьютере.
Если вы хотите узнать больше о Docker, я рекомендую ознакомиться со следующими ресурсами:
- Документация по докеру: https://docs.docker.com/
- Учебник по Docker: https://docs.docker.com/get-started/
- Докер Хаб: https://hub.docker.com/
Установка докера
Мы будем использовать скрипт для автоматической установки механизма докера и требований.
#!/bin/bash # Verficando Permisos function print { DATE=`date +'%Y-%m-%d %H:%M:%S'` echo "[$DATE] $1" >> /logs/MaquinasIaaS_log.log } if [ "$(whoami)" != "root" ]; then echo -e "${red}Fail${reset}" echo "Please use a root account or sudo Permissions" exit 1 else echo -e "${green}OK${reset}" # Ubuntu sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common -y # Clave GPG sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # Repository sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # Install Docker sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io -y sudo apt autoremove -y # Install Docker-Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # Docker Users name=$(whoami) sudo usermod -aG docker $name fi
Шпаргалка по докеру
docker run IMAGE
Запустите новый контейнерdocker run --name CONTAINER IMAGE
Запустите новый контейнер и задайте имяdocker run -p HOSTPORT:CONTAINERPORT IMAGE
Запустите новый контейнер с сопоставленными портамиdocker run -P IMAGE
Запустите новый контейнер и сопоставьте все порты
Управление контейнерами:
docker create IMAGE
Создание нового контейнераdocker start CONTAINER
Запуск контейнераdocker stop CONTAINER
Мягкая остановка контейнераdocker kill CONTAINER
Удаление (SIGKILL) контейнераdocker restart CONTAINER
Мягкая остановка и перезапуск контейнераdocker pause CONTAINER
Приостановка контейнераdocker unpause CONTAINER
Возобновление контейнераdocker rm CONTAINER
Уничтожение контейнера
Управление массовыми контейнерами
docker stop $(docker ps -q)
Чтобы остановить все запущенные контейнерыdocker stop $(docker ps -a -q)
Чтобы остановить все остановленные и работающие контейнерыdocker kill $(docker ps -q)
Чтобы убить все запущенные контейнерыdocker kill $(docker ps -a -q)
Чтобы убить все остановленные и запущенные контейнерыdocker restart $(docker ps -q)
Чтобы перезапустить все запущенные контейнерыdocker restart $(docker ps -a -q)
Чтобы перезапустить все остановленные и запущенные контейнерыdocker rm $(docker ps -q)
Чтобы уничтожить все запущенные контейнерыdocker rm $(docker ps -a -q)
Чтобы уничтожить все остановленные и запущенные контейнерыdocker pause $(docker ps -q)
Чтобы приостановить все запущенные контейнерыdocker pause $(docker ps -a -q)
Чтобы приостановить все остановленные и запущенные контейнерыdocker start $(docker ps -q)
Чтобы запустить все запущенные контейнерыdocker start $(docker ps -a -q)
Чтобы запустить все остановленные и запущенные контейнерыdocker rm -vf $(docker ps -a -q)
Чтобы удалить все контейнеры, включая их тома, используйтеdocker rmi -f $(docker images -a -q)
Чтобы удалить все образыdocker system prune
Чтобы удалить все висящие и неиспользуемые образы, контейнеры, кэш и тома
_ 28_Чтобы удалить все используемые и неиспользуемые образыdocker system prune --volumes
Чтобы удалить все тома Docker
Проверить контейнеры:
docker ps
Список запущенных контейнеровdocker ps -a
Список всех контейнеров, включая остановленныеdocker logs CONTAINER
Показать выходные данные контейнераdocker logs -f CONTAINER
Следить за выходными данными контейнераdocker top CONTAINER
Список процессов, запущенных в контейнереdocker diff
Показать различия с изображением (измененные файлы)docker inspect
Показать информацию о контейнере (в формате json)
Выполнить команды:
docker attach CONTAINER
Прикрепить к контейнеруdocker cp CONTAINER:PATH HOSTPATH
Копировать файлы из контейнераdocker cp HOSTPATH CONTAINER:PATH
Копировать файлы в контейнерdocker export CONTAINER
Экспортировать содержимое контейнера (архив tar)docker exec CONTAINER
Выполнить команду внутри контейнераdocker exec -it CONTAINER /bin/bash
Открыть интерактивную оболочку внутри контейнера (в некоторых образах нет bash, используйте /bin/sh)docker wait CONTAINER
Подождите пока контейнер не завершится и не вернет код выхода
Изображения:
docker images
Список всех локальных изображенийdocker history IMAGE
Показать историю изображенийdocker inspect IMAGE
Показать информацию (в формате json)docker tag IMAGE TAG
Пометить изображение тегомdocker commit CONTAINER IMAGE
Создать изображение (из контейнера)docker import URL
Создать изображение (из архива)docker rmi IMAGE
Удалить изображенияdocker pull REPO:[TAG]
Извлечь образ/репозиторий из реестраdocker push REPO:[TAG]
отправить образ/репозиторий в реестрdocker search TEXT
поиск образа в официальном реестреdocker login
войти в реестрdocker logout
выйти из реестраdocker save REPO:[TAG]
экспортировать образ/репозиторий в виде архиваdocker load
загрузить образы из архива
Тома:
docker volume ls
Вывести список всех томовdocker volume create VOLUME
Создать томdocker volume inspect VOLUME
Показать информацию (в формате json)docker volume rm VOLUME
Уничтожить томdocker volume ls --filter="dangling=true"
Вывести список всех висящих томов (на которые не ссылается какой-либо контейнер)docker volume prune
Удалить все тома (на которые не ссылается какой-либо контейнер)
Резервное копирование контейнера
Сделайте резервную копию данных Docker из томов контейнера и упакуйте их в tarball-архив. docker run --rm --volumes-from CONTAINER -v $(pwd):/backup busybox tar cvfz /backup/backup.tar CONTAINERPATH
Восстановить контейнер из резервной копии
Восстановите том с помощью архива tarball. docker run --rm --volumes-from CONTAINER -v $(pwd):/backup busybox sh -c "cd CONTAINERPATH && tar xvf /backup/backup.tar --strip 1"
Докер-файл
FROM -- Indicates the base image on which we will work RUN -- Runs commands, such as installing packages, creating directories, etc. [This instruction allows you to run commands in images where there is no /bin/sh] ARG -- Serves to define the arguments that we will introduce when building the image WORKDIR -- Indicates the path in which we will position ourselves inside the container USER -- Indicates the user that will be used when executing the container COPY -- Serves to copy files to our image ENV -- Sets environment variables CMD ["command"] -- Indicates the command that will be launched when the container starts
Пример:
FROM alpine:1.0 RUN apt-get install wget && \ apt-get install git && RUN useradd --uid 1000 jenkins ARG USER-ARTIFACTORY WORKDIR /opt USER jenkins COPY ruta_local/archivo.zip ruta_imagen/archivo.zip ENV PRUEBA=/usr/local/pr/prueba CMD ["--help"]
Если вам понравилась эта статья и вы хотите угостить меня кофе ☕️подпишитесь на BuyMeACoffe Link