Описываемый вариант установки подходит для версий Ubuntu с долгосрочной поддержкой (LTS) Ubuntu 20.04, 22.04 и 24.04, в описании я буду использовать версию Ubuntu 24.04.
Минимальные требования к серверу:
- 64-разрядную архитектуру и не менее
- 2 ГБ оперативной памяти
Настройка окружения
Чтобы начать установку Docker, убедитесь, что ваша система обновлена и установлены все необходимые пакеты. Выполните следующие действия.:
- Откройте свой терминал и подключитесь к серверу (VPS ) с помощью SSH. Замените Имя пользователя и your_server_ip с вашими фактическими учетными данными:
ssh username@your_server_ip
Можно использовать putty для удобства.
- Обновите список пакетов, чтобы убедиться, что ваш сервер использует новейшие версии пакетов и их зависимостей:
sudo apt update
sudo apt upgrade
- Установите необходимые пакеты, чтобы разрешить apt использовать репозитории через HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
2. Добавьте официальный GPG-ключ Docker
Чтобы обеспечить подлинность и безопасность пакетов Docker, вам необходимо добавить официальный GPG-ключ Docker и настроить репозиторий Docker. Вот руководство.:
- Выполните следующую команду curl чтобы добавить GPG-ключ Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Добавьте официальный репозиторий Docker в свои APT-исходники:
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
- Обновите список пакетов, чтобы включить пакеты из нового репозитория:
sudo apt update
3. Установите Docker
Теперь, настроив необходимые репозитории, вы можете приступить к установке Docker. Вот шаги для этого.:
- Убедитесь, что вы собираетесь установить Docker из его официального репозитория, а не из репозитория Ubuntu по умолчанию:
apt-cache policy docker-ce
- Вы увидите следующий вывод, указывающий на то, что Docker будет установлен из правильного репозитория:
docker-ce:
Installed: (none)
Candidate: 5:26.1.3-1~ubuntu.24.04~noble
Version table:
5:26.1.3-1~ubuntu.24.04~noble 500
500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages
5:26.1.2-1~ubuntu.24.04~noble 500
500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages
5:26.1.1-1~ubuntu.24.04~noble 500
500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages
…
- Выполните эту команду, чтобы установить Docker Engine, Docker Community Edition и containerd runtime, все необходимое для запуска контейнеров Docker:
sudo apt install docker-ce docker-ce-cli containerd.io
- Убедитесь, что Docker запускается автоматически при загрузке вашей системы:
sudo systemctl enable docker
4. Проверьте установку Docker
После установки Docker важно убедиться, что установка прошла успешно и Docker работает правильно. Вот инструкции.:
- Подтвердите версию Docker, установленную в вашей системе:
docker --version
- Вот ожидаемый результат:
Docker version 26.1.3, build b72abbb
- Используйте следующую команду, чтобы проверить состояние службы Docker:
sudo systemctl status docker
- Вы должны увидеть вывод, указывающий на то, что Docker активен и запущен:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-05-22 06:12:32 UTC; 39s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 3717 (dockerd)
Tasks: 9
Memory: 29.4M (peak: 29.8M)
CPU: 334ms
CGroup: /system.slice/docker.service
└─3717 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
- Чтобы выйти из этого экрана состояния, нажмите Ctrl + C на клавиатуре.
5. Запустите Docker без Sudo (необязательно)
По умолчанию Docker позволяет запускать свои команды только от имени пользователя root с sudo привилегии, которые могут быть неудобными и потенциально менее безопасными. Если вы попытаетесь запустить команды Docker от имени пользователя, не имеющего прав root, вы можете увидеть ошибку, подобную этой:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
Однако запуск Docker без sudo более целесообразно, потому что это быстрее и проще. Следуйте этому руководству.:
- Выполните следующую команду, чтобы создать докер Группа:
sudo groupadd docker
- Добавьте нового пользователя, если у вас его нет. Здесь мы назовем его new_user:
sudo usermod -aG docker new_user
- Вам будет предложено установить новый пароль для этого пользователя.
- Добавить new_user в docker Группа:
sudo usermod -aG docker new_user
- Переключитесь на недавно созданного пользователя:
su - new_user
- Убедитесь, что этот пользователь является частью программы docker Группа:
groups
- Вот результат:
new_user users docker
- Запустите простую команду Docker, чтобы убедиться, что вы можете запускать команды без sudo:
docker run hello-world
- Вы должны увидеть вывод, показывающий, что Docker работает корректно от имени пользователя, не имеющего права root:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:266b191e926f65542fa8daaec01a192c4d292bff79426f47300a046e1bc576fd
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
Поздравляем! Вы успешно настроили Docker вручную на Ubuntu VPS с помощью команд.
Устранение распространенных проблем с установкой Docker
Установка Docker иногда может быть сопряжена с трудностями. Вот несколько распространенных проблем и практических советов по их устранению.
Демон Docker не запущен (Docker daemon is not running
Если вы получаете сообщение об ошибке, указывающее, что демон Docker не запущен, это, вероятно, означает, что служба не активна. Чтобы устранить это, запустите службу Docker с помощью команды:
Демон Docker не запущен (Docker daemon is not running)
Вы можете проверить состояние демона Docker, выполнив:
sudo systemctl status docker
Не удается подключиться к демону Docker
Если вы столкнулись с ошибкой “Не удается подключиться к демону Docker в unix: /// var / run / docker.sock”, обычно это означает, что служба Docker не запущена или возникли проблемы с разрешениями.
Сначала убедитесь, что служба Docker запущена с:
sudo systemctl start docker
Затем убедитесь, что ваш пользователь является частью группы Docker, выполнив следующее:
groups
Проблемы с установкой из репозиториев
Проблемы при добавлении репозитория Docker APT или во время установки пакета могут возникнуть из-за неправильной настройки репозитория. Убедитесь, что вы добавили официальный репозиторий и обновили список пакетов, выполнив:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
Запущенные контейнеры не отвечают
Если запущенные контейнеры не отвечают или ведут себя неожиданно, проверьте журналы контейнеров, чтобы диагностировать проблему. Используйте команду:
docker logs container_id
При необходимости перезапустите контейнер, выполнив:
docker restart container_id
Брандмауэр и конфигурация сети
Иногда Docker может сталкиваться с проблемами из-за настроек брандмауэра или сетевых конфигураций, блокирующих необходимые порты. Убедитесь, что ваш брандмауэр разрешает трафик через порты Docker по умолчанию. Вы можете проверить свои правила брандмауэра и при необходимости добавить необходимые исключения.
Например, если вы используете Простой брандмауэр (UFW), вы можете разрешить трафик Docker с помощью:
sudo ufw allow 2375/tcp
sudo ufw allow 2376/tcp
sudo ufw allow 2377/tcp
sudo ufw allow 7946/tcp
sudo ufw allow 7946/udp
sudo ufw allow 4789/udp
Кроме того, проверьте настройки вашей сети, чтобы убедиться, что Docker может взаимодействовать с внешними серверами для загрузки образов и выполнения других задач.
Настройка и советы после установки
После установки Docker новые пользователи должны ознакомиться с несколькими необходимыми командами и задачами. В этом разделе будут рассмотрены некоторые настройки Docker после установки и советы.
Основные команды Docker
Начало работы с Docker включает в себя изучение нескольких основных команд. Вот несколько команд, которые должен знать каждый новый пользователь:
- Список образов Docker:
docker images
- Поиск изображений в Docker Hub:
docker search image_name
- Загрузите образ Docker из Docker Hub:
docker pull image_name
Кроме того, ознакомьтесь с нашей Шпаргалкой по Docker руководством, чтобы изучить все наиболее важные команды и их назначение.
Запуск контейнеров Docker и управление ими
Запуск контейнеров и управление ими — основная часть работы с Docker. Вот руководство по выполнению этих задач.:
- Запустите контейнер Docker, используя указанный образ:
docker run -d --name container_name image_name
- Запустите контейнер Docker:
docker start container_id_or_name
- Остановить запущенный контейнер:
docker stop container_id_or_name
- Перечислите все запущенные контейнеры:
docker ps
Работа с образами Docker
Образы Docker являются основой для контейнеров. Вот как вы можете работать с образами:
- Создайте образ Docker из файла Dockerfile в текущем каталоге:
docker build -t image_name .
- Пометьте изображение определенным именем и тегом:
docker tag source_image_name target_image_name:tag
- Войдите в Docker Hub, пометьте свое изображение и отправьте его в свой репозиторий:
docker login
docker tag image_name dockerhub_username/image_name:tag
docker push dockerhub_username/image_name:tag
Удаление неиспользуемых компонентов Docker
Чтобы поддерживать чистоту и эффективность вашей среды, вам необходимо регулярно удалять неиспользуемые компоненты Docker. Вот как это сделать.:
- Удалите все зависшие образы Docker:
docker image prune
- Удалите все остановленные контейнеры:
docker container prune
- Очистите неиспользуемые тома Docker:
docker container prune
- Удалите все неиспользуемые сети:
docker network prune
Использование Docker Compose
Docker Compose — мощный инструмент для управления многоконтейнерными приложениями. Вот основная команда для его запуска.:
docker-compose up -d
Это запускает службы, определенные в файле docker-compose.yml в отдельном режиме.