> For the complete documentation index, see [llms.txt](https://utm-1.gitbook.io/utm-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/programmnoe-obespechenie/linux-servera/sistemnoe-po/docker/testovyi-konteiner.md).

# Тестовый контейнер

<details>

<summary>Тестовый Nginx</summary>

**Развертывание тестового Nginx в контейнере Docker**:<br>

#### Скачать образ Nginx

Чтобы начать, нам нужно загрузить официальный образ Nginx из Docker Hub. Введите следующую команду:

```bash
docker pull nginx
```

Эта команда загрузит последнюю версию образа Nginx. Docker Hub хранит множество готовых образов, что упрощает развертывание.

#### Подготовка запуска <a href="#undefined" id="undefined"></a>

Прежде чем запустить Nginx, создайте простую структуру каталогов для ваших веб-страниц. Это поможет вам лучше управлять файлами:

```bash
mkdir -p ~/mynginx/html
```

Здесь мы создаем каталог для хранения веб-файлов. Давайте создадим простой `index.html`, чтобы проверить наш сервер.

```bash
echo '<h1>Привет из Nginx!</h1>' > ~/mynginx/html/index.html
```

#### Запуск Nginx <a href="#nginx" id="nginx"></a>

Теперь, когда у нас есть образ и файлы, давайте запустим Nginx:

```bash
docker run --name mynginx -v ~/mynginx/html:/usr/share/nginx/html:ro -p 8088:80 -d nginx
```

* `--name mynginx` — задаем имя контейнера.
* `-v ~/mynginx/html:/usr/share/nginx/html:ro` — монтируем локальный каталог в контейнер (опция `ro` говорит, что это только для чтения).
* `-p 8088:80` — перенаправляем порты (локальный 8088 на 80 в контейнере).
* `-d` — запускаем контейнер в фоновом режиме.

Теперь, когда Nginx запущен, откройте браузер и перейдите по адресу `http://localhost:8088`. Вы должны увидеть сообщение "Привет из Nginx!".

### Настройка Nginx <a href="#nastroika-nginx" id="nastroika-nginx"></a>

#### Конфигурация Nginx <a href="#nginx" id="nginx"></a>

Иногда вам может понадобиться изменить настройки Nginx. Хорошая новость в том, что вы можете это сделать, просто изменив конфигурационный файл и перезапустив контейнер.

Давайте создадим наш собственный конфигурационный файл:

```bash
mkdir ~/mynginx/conf
```

Теперь создайте файл `nginx.conf` в этой папке:

```bash
cat <<EOF > ~/mynginx/conf/nginx.conf
events {}
http {
    server {
        listen 80;
        server_name localhost;

        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
}
EOF
```

Теперь мы можем перезапустить Nginx, использовав наш конфигурационный файл:

```bash
docker stop mynginx
docker rm mynginx
docker run --name mynginx -v ~/mynginx/html:/usr/share/nginx/html:ro -v ~/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8088:80 -d nginx
```

Во второй команде мы добавляем новый монтируемый файл `-v ~/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro`, чтобы Docker использовал нашу конфигурацию.

### Ошибки и их решение

Если при развёртывании Nginx в контейнере Docker возникают ошибки, можно попробовать следующее:

* **Проверить образ Docker** — убедиться, что он существует и доступен в реестре Docker.
* **Проверить доступность порта** — убедиться, что порт, который нужно сопоставить, не используется другим процессом.
* **Проверить права доступа** — убедиться, что текущий пользователь имеет необходимые права для выполнения команд Docker. Возможно, придётся использовать&#x20;

  ```
  sudo
  ```

  &#x20;или переключиться на пользователя с соответствующими правами.
* **Просмотреть логи контейнера** — использовать команду&#x20;

  ```
  docker logs
  ```

  &#x20;для просмотра журналов неудачно запущенного контейнера и определения корневой причины проблемы.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/programmnoe-obespechenie/linux-servera/sistemnoe-po/docker/testovyi-konteiner.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
