Docker

Docker Top Commands
                                                                                                                                                                

 
 Показать все контейнеры / образы 
 docker ps --all --format "table {{.ID}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
docker images --format "{{.ID}}: {{.Repository}}: {{.Tag}}" 
 Запуск / Остановка контейнеров 
 docker start/stop $(docker ps -aq)
docker start/stop $(docker ps | grep <container> | awk '{print $1}') 
 Удалить все / контейнеры / образы 
 docker rm $(docker ps -aq)
docker rmi -f $(docker images -aq)
docker rm $(docker ps -aq --filter="name=<name-mask>*") 
 Shell-подключение к контейнеру 
 docker exec -it <container> bash 
 Под root правами 
 docker exec -u 0 -it <container> bash 
 Подкючение к БД postgres в контейнере 
 docker exec -it <container> psql -U postgres 
 Присоединение к основному процессу #1 контейнера 
 docker attach <container>
Ctrl+C - завершить основной процесс (остановка контейнера)
Ctrl+P + Ctrl+Q - выйти без завершения процесса (контейнер продолжается) 
 Создать образ из Dockerfile (-t тег) 
 docker build -t shions/<container> -f Dockerfile1 . 
 Собрать/запустить/detached mode 
 docker compose up -d --build 
 Запуск контейнера с пробросом порта 
 docker run -it --name name -p 3000:3000 shions/<container> 
 Запуск с пробросом папки в контейнер 
 docker run -it -v /home/ubuntu:/home/new_dru <container> 
 Чистка images/system/volume/networks 
 docker image prune -a
docker system prune -f
docker volume prune -f 
 Рабочие контейнеры должны быть запущены !!! 
 Размер Volumes 
 docker volume ls
docker system df -v | tail -n +$(docker system df -v | grep -n "Local Volumes space usage:" | cut -d: -f1) 
 Работа со спец. контейнерами 
 cd /opt/dockerapps/wiki
sudo /usr/local/bin/docker-compose-wiki ps -a
sudo /usr/local/bin/docker-compose-wiki up -d
sudo /usr/local/bin/docker-compose-wiki down
sudo /usr/local/bin/docker-compose-wiki exec -u 0 -it wiki-app bash

Docker HandBook
Установка Docker и компонентов                                                                      
 
 Docker Install 
 Docker Postinstall 
 Docker Compose Install 
 
 Основные команды Docker 
 
 Docker Commands 
 [RUN] Commands Option 
 Docker File 
 Image  Format Guide 
 CLI  Format Guide

Установка Docker Offline
                                                                                                                                                                      
 Docker Offline установка для Ubuntu (DEB-based) 
 Добавление репозитория Docker 
 # Автоматическое определение кодового имени Ubuntu
UBUNTU_VERSION=$(lsb_release -cs)
echo "Версия Ubuntu: $UBUNTU_VERSION"

# Создание папки для ключей
sudo mkdir -p /etc/apt/keyrings

# Добавление GPG ключа
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Добавление репозитория
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $UBUNTU_VERSION stable" | \
 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 
 Синхронизация репозиториев 
 sudo apt update 
 Скачивание Docker и всех зависимостей 
 # Создание папки для пакетов
mkdir -p ~/docker-offline-packages
cd ~/docker-offline-packages

# Скачивание пакетов
sudo apt-get download \
 docker-ce \
 docker-ce-cli \
 containerd.io \
 docker-compose-plugin \
 docker-buildx-plugin

# Скачивание ВСЕХ зависимостей (включая рекомендованные)
apt-cache depends docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin | \
 grep -E "Depends|Recommends" | \
 awk '{print $2}' | \
 sort -u | \
 xargs sudo apt-get download 2>/dev/null || true 
 Копирование на целевой сервер 
 # Замените user и IP на реальные значения
sudo scp -r ~/docker-offline-packages user@IP:/home/user/

# Альтернатива: архивирование для передачи любым способом
tar -czf docker-offline-packages.tar.gz ~/docker-offline-packages 
 Установка на целевом сервере 
 cd ~/docker-offline-packages
# Установка с разрешением зависимостей (РЕКОМЕНДУЕТСЯ)
sudo apt install ./*.deb -y
# Альтернатива: установка через dpkg (если нет интернета)
# sudo dpkg -i *.deb 
 Запуск и настройка Docker 
 sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

# Применение изменений группы без перезагрузки
newgrp docker 
 Docker Offline установка для CentOS/RHEL 8+ 
 Добавление репозитория Docker 
 # Установка утилит для управления репозиториями
sudo dnf install -y dnf-utils

# Добавление репозитория Docker
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
 Синхронизация репозиториев 
 sudo dnf makecache 
 Скачивание Docker и всех зависимостей 
 # Создание папки для пакетов
mkdir -p ~/docker-offline-packages
cd ~/docker-offline-packages

# Скачивание пакетов и всех зависимостей
sudo dnf download \
 docker-ce \
 docker-ce-cli \
 containerd.io \
 docker-compose-plugin \
 docker-buildx-plugin \
 container-selinux \
 --resolve --alldeps

# Проверка количества скачанных пакетов
echo "Скачано $(ls -1 *.rpm 2>/dev/null | wc -l) RPM-пакетов" 
 Копирование на целевой сервер 
 # Замените user и IP на реальные значения
sudo scp -r ~/docker-offline-packages user@IP:/home/user/

# Альтернатива: архивирование для передачи любым способом
tar -czf docker-offline-packages.tar.gz ~/docker-offline-packages 
 Установка на целевом сервере 
 cd ~/docker-offline-packages
# Установка с разрешением зависимостей
sudo dnf localinstall ./*.rpm -y
# Альтернатива: установка через rpm (если нет интернета)
# sudo rpm -ivh --nodeps *.rpm 
 Запуск и настройка Docker 
 sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

# Применение изменений группы без перезагрузки
newgrp docker