Установка и настройка Docker

Материал из ARK-HOSTER.RU | Документация хостинга
Версия от 19:50, 14 октября 2025; Admin (обсуждение | вклад) (Новая страница: «= Установка и настройка Docker = == 1. Подготовка системы == * Войдите в систему под учетной зап…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Установка и настройка Docker

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка Docker =

Установка через официальный репозиторий

1. Обновите список пакетов: sudo apt update

2. Установите необходимые пакеты: sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

3. Добавьте официальный GPG ключ Docker: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4. Добавьте репозиторий Docker: echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. Обновите список пакетов: sudo apt update

6. Установите Docker: sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Установка через snap

1. Установите Docker через snap: sudo snap install docker

2. Добавьте пользователя в группу docker: sudo usermod -aG docker $USER

3. Настройка Docker =

Запуск и включение автозапуска

1. Запустите Docker: sudo systemctl start docker

2. Включите автозапуск: sudo systemctl enable docker

3. Проверьте статус: sudo systemctl status docker

Настройка пользователей

1. Добавьте пользователя в группу docker: sudo usermod -aG docker $USER

2. Перезагрузите сессию или выполните: newgrp docker

3. Проверьте права: docker run hello-world

4. Основы работы с Docker =

Основные команды

1. Просмотр информации о Docker: docker --version docker info

2. Просмотр образов: docker images

3. Просмотр контейнеров: docker ps docker ps -a

4. Просмотр всех ресурсов: docker system df

Работа с образами

1. Скачивание образа: docker pull nginx docker pull ubuntu:20.04

2. Поиск образов: docker search nginx

3. Удаление образа: docker rmi nginx docker rmi $(docker images -q)

Работа с контейнерами

1. Запуск контейнера: docker run -d --name my-nginx nginx

2. Запуск с портами: docker run -d -p 8080:80 --name my-nginx nginx

3. Запуск с переменными окружения: docker run -d -e MYSQL_ROOT_PASSWORD=password --name my-mysql mysql

4. Остановка контейнера: docker stop my-nginx

5. Удаление контейнера: docker rm my-nginx

5. Создание Dockerfile =

Базовый Dockerfile

1. Создайте Dockerfile: nano Dockerfile

2. Добавьте содержимое:

  1. Базовый образ

FROM ubuntu:20.04

  1. Метаданные

LABEL maintainer="admin@example.com" LABEL description="My custom application"

  1. Установка пакетов

RUN apt update && apt install -y \

   nginx \
   curl \
   && rm -rf /var/lib/apt/lists/*
  1. Копирование файлов

COPY index.html /var/www/html/ COPY nginx.conf /etc/nginx/nginx.conf

  1. Открытие портов

EXPOSE 80

  1. Команда запуска

CMD ["nginx", "-g", "daemon off;"]

Создание образа

1. Создайте образ: docker build -t my-app:latest .

2. Создайте образ с тегом: docker build -t my-app:v1.0 .

3. Запустите контейнер: docker run -d -p 8080:80 --name my-app-container my-app:latest

6. Настройка Docker Compose =

Установка Docker Compose

1. Установите Docker Compose: sudo apt install docker-compose

2. Проверьте версию: docker-compose --version

Создание docker-compose.yml

1. Создайте файл конфигурации: nano docker-compose.yml

2. Добавьте содержимое: version: '3.8'

services:

 web:
   image: nginx:latest
   ports:
     - "80:80"
   volumes:
     - ./html:/usr/share/nginx/html
   depends_on:
     - app
 app:
   image: node:16
   working_dir: /app
   volumes:
     - ./app:/app
   command: npm start
   ports:
     - "3000:3000"
 database:
   image: mysql:8.0
   environment:
     MYSQL_ROOT_PASSWORD: rootpassword
     MYSQL_DATABASE: myapp
     MYSQL_USER: user
     MYSQL_PASSWORD: password
   volumes:
     - mysql_data:/var/lib/mysql
   ports:
     - "3306:3306"

volumes:

 mysql_data:

Управление Docker Compose

1. Запуск сервисов: docker-compose up -d

2. Остановка сервисов: docker-compose down

3. Просмотр логов: docker-compose logs docker-compose logs web

4. Перезапуск сервисов: docker-compose restart

7. Настройка Docker Registry =

Установка локального Registry

1. Запустите Docker Registry: docker run -d -p 5000:5000 --name registry registry:2

2. Создайте образ для Registry: docker tag my-app:latest localhost:5000/my-app:latest

3. Отправьте образ в Registry: docker push localhost:5000/my-app:latest

Настройка аутентификации

1. Создайте директорию для аутентификации: sudo mkdir -p /auth

2. Создайте пользователя: sudo htpasswd -Bbn username password > /auth/htpasswd

3. Запустите Registry с аутентификацией: docker run -d -p 5000:5000 --name registry \

 -v /auth:/auth \
 -e "REGISTRY_AUTH=htpasswd" \
 -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
 -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
 registry:2

8. Мониторинг Docker =

Просмотр статистики

1. Просмотрите статистику контейнеров: docker stats

2. Просмотрите статистику конкретного контейнера: docker stats my-container

3. Просмотрите использование ресурсов: docker system df

Создание скрипта мониторинга

1. Создайте скрипт мониторинга: sudo nano /usr/local/bin/docker-monitor.sh

2. Добавьте содержимое:

  1. !/bin/bash

echo "=== Docker Monitoring ===" echo "Date: $(date)" echo ""

  1. Статус Docker

if systemctl is-active --quiet docker; then

   echo "Docker is running"

else

   echo "Docker is not running"

fi

  1. Количество контейнеров

echo "Running containers: $(docker ps -q | wc -l)" echo "Total containers: $(docker ps -aq | wc -l)"

  1. Количество образов

echo "Images: $(docker images -q | wc -l)"

  1. Использование диска

echo "Disk usage:" docker system df

  1. Топ контейнеров по использованию CPU

echo "Top containers by CPU:" docker stats --no-stream --format "table Шаблон:.Container\tШаблон:.CPUPerc\tШаблон:.MemUsage" | head -10

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/docker-monitor.sh

9. Настройка сети Docker =

Создание пользовательской сети

1. Создайте сеть: docker network create my-network

2. Просмотрите сети: docker network ls

3. Запустите контейнеры в сети: docker run -d --name web --network my-network nginx docker run -d --name app --network my-network node:16

Настройка моста

1. Создайте мост: docker network create --driver bridge --subnet=172.20.0.0/16 my-bridge

2. Подключите контейнер к мосту: docker run -d --name web --network my-bridge nginx

10. Управление данными =

Создание томов

1. Создайте том: docker volume create my-volume

2. Просмотрите тома: docker volume ls

3. Используйте том в контейнере: docker run -d --name web -v my-volume:/var/www/html nginx

Создание bind mount

1. Создайте bind mount: docker run -d --name web -v /host/path:/container/path nginx

2. Создайте read-only mount: docker run -d --name web -v /host/path:/container/path:ro nginx

11. Устранение неполадок =

Частые проблемы

1. Docker не запускается:

  • Проверьте статус: sudo systemctl status docker
  • Проверьте логи: sudo journalctl -u docker
  • Проверьте права: groups $USER

2. Контейнеры не запускаются:

  • Проверьте логи: docker logs container_name
  • Проверьте ресурсы: docker stats
  • Проверьте образы: docker images

3. Проблемы с сетью:

  • Проверьте сети: docker network ls
  • Проверьте подключения: docker network inspect network_name

Диагностика

1. Проверьте статус Docker: sudo systemctl status docker

2. Проверьте информацию о системе: docker info

3. Проверьте логи Docker: sudo journalctl -u docker -f

4. Проверьте использование ресурсов: docker system df docker stats --no-stream

12. Оптимизация производительности =

Настройки производительности

1. Отредактируйте конфигурацию Docker: sudo nano /etc/docker/daemon.json

2. Добавьте настройки: {

   "log-driver": "json-file",
   "log-opts": {
       "max-size": "10m",
       "max-file": "3"
   },
   "storage-driver": "overlay2",
   "storage-opts": [
       "overlay2.override_kernel_check=true"
   ]

}

3. Перезапустите Docker: sudo systemctl restart docker

Очистка системы

1. Очистите неиспользуемые ресурсы: docker system prune -a

2. Очистите только неиспользуемые образы: docker image prune -a

3. Очистите неиспользуемые тома: docker volume prune

4. Очистите неиспользуемые сети: docker network prune

Заключение

Docker успешно установлен и настроен! Теперь вы можете использовать контейнеризацию для ваших приложений.

Для размещения ваших Docker контейнеров на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой Docker и оптимизацией производительности ваших контейнеров!