
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
