> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/ru/docs/tools-and-integrations/container/docker.md).

# Что такое Docker

В Edgegap мы работаем с контейнерами, чтобы равномерно распределять нагрузку по всему миру. Нам нужно, чтобы ваша игра запускалась за миллисекунды, поэтому при создании контейнеров нужно учитывать скорость и соответствующим образом строить архитектуру. Мы проведём вас через создание Docker-образа, также известного как контейнер.

{% hint style="info" %}
Если вы хотите быстро познакомиться с контейнерами, мы настоятельно рекомендуем [это короткое видео](https://www.youtube.com/watch?v=J0NuOlA2xDc\&ab_channel=Coderized).
{% endhint %}

<figure><img src="/files/9ef293a16f291f539a7c6505e9fb01b8ef02d316" alt=""><figcaption></figcaption></figure>

### **Что такое Docker?**

* Docker — это PaaS (платформа как услуга), которая позволяет виртуализацию на уровне ОС.

### **Что такое команда Docker Run?**

* Команда docker run позволяет создать контейнер из образа, чтобы движок Docker Desktop мог запустить контейнер.

### **Попробуйте**

Давайте начнём с добавления инструментов, которые понадобятся вам на компьютере для создания вашего первого контейнера.

Вы можете следовать процедуре установки, как указано в Docker Desktop.

если вы используете [Windows 10 Pro](https://docs.docker.com/docker-for-windows/install/) Если вы используете [Windows 10 Home Edition](https://docs.docker.com/docker-for-windows/install-windows-home/) Если вы используете [macOS](https://docs.docker.com/docker-for-mac/install/)

Теперь, когда Docker запущен на вашей локальной машине, мы можем начать с простого hello world.

```sh
docker run -d -p 80:80 --name speedtest edgegap/speedtest-edge
```

Вы можете открыть командную строку и ввести указанную выше команду.

Дальнейшие шаги будут выполняться автоматически.

1. Скачать контейнер из репозитория Edgegap (только в первый раз)
2. Запустить контейнер
3. Имя будет speedtest (--name)
4. Чтобы сделать ваш контейнер доступным извне, нужно указать это в команде docker run. В этом примере мы откроем порт 80 снаружи, перенаправив его на открытый порт 80 внутри контейнера (-p)
5. Вы можете проверить это, открыв веб-браузер и перейдя по адресу [http://localhost](http://localhost/)
6. Вот и всё, вы запустили свой первый контейнер.

Теперь, когда ваш контейнер запущен, вы можете взаимодействовать с ним. В следующем разделе мы перезапустим контейнер, остановим его и посмотрим его сеть. Сначала вам нужно локально увидеть, что запущено на вашем docker-engine; в командной строке введите

```sh
docker ps
```

Вы должны увидеть что-то похожее.

```
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                NAMES
dbf4d3734111        edgegap/speedtest-edge   "docker-php-entrypoi…"   29 минут назад      Работает 29 минут    0.0.0.0:80->80/tcp   speedtest
```

Вы визуально видите информацию о контейнере, работающем на вашем компьютере; в этом списке может быть запущено более одного контейнера.

`docker ps` — это простая команда; вы научитесь использовать её очень часто.

Допустим, вам нужна дополнительная информация о работающем контейнере. Вы можете попросить движок Docker предоставить все сведения о вашем контейнере, выполнив следующую команду:

```sh
docker container inspect speedtest
```

Если вы хотите увидеть внутреннюю сеть, созданную движком Docker, вы можете сделать это, выполнив следующую команду.

```sh
docker network ls
```

Вы получите что-то похожее на это:

```
NETWORK ID          NAME                DRIVER              SCOPE
67b24038b9ca        bridge              bridge              local
6f7fe43a489d        host                host                local
3d80cdb86a7e        none                null                local
```

Если вы хотите глубже разобраться в сетевой конфигурации, вы можете выполнить следующую команду:

```sh
docker network inspect 67b24038b9ca
# где 678b24038b9ca — это ваша сеть, подключённая к вашему контейнеру
```

Остановка Docker

Теперь, когда вы запустили свой контейнер, вы можете остановить его с помощью:

```sh
docker container stop speedtest
```
