Docker — это платформа для разработки, сборки, доставки и запуска приложений в т.н. "контейнерах". Благодаря Docker вы можете сделать ваши приложения независимыми от инфраструктуры и обеспечить их быстрое и единообразное развертывание.

На данный момент Docker предлагает весь перечень инструментов для сборки собственных образов приложений и запуска их в контейнерной среде.

Docker от Бегета — это готовый к работе дистрибутив с установленным ПО Docker и Docker Compose: собирайте, тестируйте и деплойте свои приложения сразу после создания виртуального сервера.

Состав приложения

  • Ubuntu 22.04
  • Docker CE, последняя версия
  • Docker Сompose, последняя версия

Установка и использование Docker

При создании сервера не требуется указывать никаких дополнительных параметров. После создания виртуального сервера потребуется 1-3 минуты на то, чтобы развернуть на нем последнюю версию Docker. Статус установки будет отображаться в панели управления. После завершения установки вы получите уведомление.

Использование Docker

Для проверки корректности развертывания платформы Docker рекомендуется выполнить следующие действия:

  • Подключиться к вашему серверу по SSH по его IP-адресу, используя в качестве логина root. Для пользователей Windows может потребоваться установка SSH-клиента (например, Putty).
  • Для проверки корректности установки Docker можно запустить простой контейнер с помощью команды docker run hello-world и убедиться, что скачивание и запуск образов происходит корректно:
root@docker-host1:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Установленный Docker можно использовать без ограничений. Желаем удачной работы!

Частые вопросы по Docker

Как войти в работающий контейнер? Как выполнить команду в работающем контейнере?

Для того чтобы "зайти" в работающий контейнер или выполнить в его окружении требуемую команду, используйте docker exec:

  • Найдите ID или имя требуемого контейнера с помощью команды docker ps:
root@docker-host1:~# docker ps
CONTAINER ID   IMAGE           COMMAND             CREATED         STATUS         PORTS     NAMES
fc0e883605c3   ubuntu:latest   "/bin/sleep 1000"   2 minutes ago   Up 2 minutes             lucid_bouman
  • Для выполнения произвольной команды в контейнере воспользуйтесь командой вида docker exec <container id|name> <command>:
root@docker-host1:~# docker exec fc0e883605c3 ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   2788  1056 ?        Ss   12:37   0:00 /bin/sleep 1000
root          32  0.0  0.0   7060  1588 ?        Rs   12:41   0:00 ps aux

где fc0e883605c3 - ID контейнера, ps aux - требуемая команда

  • Для выполнения интерактивных команд (например, запуска оболочки bash в окружении контейнера), воспользуйтесь командой вида docker exec -it <container id|name> <command>:
root@docker-host1:~# docker exec -it fc0e883605c3 bash
root@fc0e883605c3:/# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   2788  1056 ?        Ss   12:37   0:00 /bin/sleep 1000
root          38  0.0  0.1   4628  3864 pts/0    Ss   12:43   0:00 bash
root          47  0.0  0.0   7060  1600 pts/0    R+   12:43   0:00 ps aux
Обратите внимание!
Для успешного выполнения команды ее реализация (бинарный файл, скрипт) должна быть доступна в контейнере. Например, часть готовых образов не содержит в себе оболочки bash, а содержит лишь оболочку sh.
Как перезапустить контейнер с помощью Docker?

Для перезапуска контейнера используйте docker restart:

  • Найдите ID или имя требуемого контейнера с помощью команды docker ps:
root@docker-host1:~# docker ps
CONTAINER ID   IMAGE           COMMAND             CREATED         STATUS         PORTS     NAMES
fc0e883605c3   ubuntu:latest   "/bin/sleep 1000"   2 minutes ago   Up 2 minutes             lucid_bouman
  • Для перезапуска требуемого контейнера воспользуйтесь командой вида docker restart <container id|name>:
root@docker-host1:~# docker restart fc0e883605c3
fc0e883605c3

Как удалить все остановленные контейнеры?

Для удаления всех остановленных контейнеров воспользуйтесь командой docker container prune:

root@docker-host1:~# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
8618a56f1accf627945ce95c4dae94ad15cb369cfaba9f0867aaccf7b7b8d2ae
55cfa3754b062c9055d5a97bf0de2c13eecc77d74c5846bb066ab24512cb72c5
fc0e883605c38d811cae890b244e2f6776b507e00e02fe802e53c82ec29fe876
86ce4a4f6cbe2be88c31163babde317d99de8fb536ae77d62a7254fc1ad2d3d1

Total reclaimed space: 10M
Обратите внимание!
Команда безвозвратно удалит все остановленные контейнеры. При этом если у контейнера были volume, то они удалены не будут. Для удаления неиспользуемых volume воспользуйтесь командой docker volume prune
Docker
Конфигурация:

Бесплатно с каждым сервером:


Автоматический бэкап данных
Круглосуточный мониторинг
Почтовая система
DNS-хостинг
Приватные сети
7