---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.4
alternate:
  - https://ydb.tech/docs/en/reference/docker/start.md
  - https://ydb.tech/docs/ru/reference/docker/start.md
sourcePath: ru/core/reference/docker/start.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Запуск YDB в Docker

## Перед началом работы

Создайте каталог для тестирования YDB и используйте его в качестве текущего рабочего каталога:

```bash
mkdir ~/ydbd && cd ~/ydbd
mkdir ydb_data
mkdir ydb_certs
```

## Запуск контейнера с YDB в Docker

Пример команды запуска YDB в Docker с подробными комментариями:

```bash
docker_args=(
    -d                              # запуск в фоне
    --rm                            # автоматическое удаление после установки
    --name ydb-local                # имя контейнера
    --hostname localhost            # хостейм
    --platform linux/amd64          # платформа
    -p 2135:2135                    # открытие внешнего доступа к grpcs порту
    -p 2136:2136                    # открытие внешнего доступа к grpc порту
    -p 8765:8765                    # открытие внешнего доступа к http порту
    -p 9092:9092                    # открытие внешнего доступа к порту, обеспечивающему Kafka-совместимость
    -v $(pwd)/ydb_certs:/ydb_certs  # директория для TLS сертификатов
    -v $(pwd)/ydb_data:/ydb_data    # рабочая директория
    -e GRPC_TLS_PORT=2135           # grpcs порт должен соответствовать тому, что опубликовано выше
    -e GRPC_PORT=2136               # grpc порт должен соответствовать тому, что опубликовано выше
    -e MON_PORT=8765                # http  порт должен соответствовать тому, что опубликовано выше
    -e YDB_KAFKA_PROXY_PORT=9092    # порт Kafka должен соответствовать тому, что опубликовано выше
    ydbplatform/local-ydb:latest
)

docker run "${docker_args[@]}"
```

<!-- source: ru/reference/docker/_includes/rosetta.md -->
{% note info %}

При использовании Mac с процессором Apple Silicon, набор процессорных инструкций x86_64 можно эмулировать с помощью [Rosetta](https://support.apple.com/en-us/102527):

- [colima](https://github.com/abiosoft/colima) c параметрами `colima start --arch aarch64 --vm-type=vz --vz-rosetta`;
- [Docker Desktop](https://docs.docker.com/desktop/setup/install/mac-install/) с установленной и включённой Rosetta 2.

Если не включена Rosetta 2, в команду запуска Docker-контейнера необходимо добавить параметр `-e YDB_USE_IN_MEMORY_PDISKS=true`. См. [Настройка Docker-контейнера YDB](https://ydb.tech/docs/ru/reference/docker/configuration.md).

{% endnote %}
<!-- endsource: ru/reference/docker/_includes/rosetta.md -->

Подробнее про переменные окружения, используемые при запуске Docker-контейнера с YDB, можно узнать в разделе [Настройка Docker-контейнера YDB](https://ydb.tech/docs/ru/reference/docker/configuration.md).

При указанных в примере выше параметрах и запуске Docker локально, [Embedded UI](https://ydb.tech/docs/ru/reference/embedded-ui/index.md) YDB будет доступен по адресу [http://localhost:8765⁠](http://localhost:8765).

Подробнее про остановку и удаление Docker-контейнера с YDB можно узнать в разделе [Остановка Docker](https://ydb.tech/docs/ru/reference/docker/cleanup.md).

### Переопределение файла конфигурации

По умолчанию при запуске контейнера Docker для YDB используется встроенный [файл конфигурации](https://ydb.tech/docs/ru/reference/configuration/index.md), который обеспечивает стандартные параметры работы. Чтобы использовать свой конфиг, смонтируйте его в `/ydb_data/cluster/kikimr_configs/config.yaml`:

```bash
docker run "${docker_args[@]}" \
  -v $(pwd)/ydb_config/my-ydb-config.yaml:/ydb_data/cluster/kikimr_configs/config.yaml
```

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

1. Запустите контейнер без указания файла конфигурации и без монтирования директории данных, чтобы он сгенерировал конфигурацию по умолчанию:

   ```bash
   docker run -d \
     --rm \
     --name ydb-local \
     --hostname localhost \
     --platform linux/amd64 \
     -v $(pwd)/ydb_certs:/ydb_certs \
     -e GRPC_TLS_PORT=2135 \
     -e GRPC_PORT=2136 \
     -e MON_PORT=8765 \
     ydbplatform/local-ydb:latest
   ```

2. Создайте директорию для файлов конфигурации и скопируйте сгенерированный файл конфигурации из контейнера прямо в нее:

   ```bash
   mkdir ydb_config
   docker cp ydb-local:/ydb_data/cluster/kikimr_configs/config.yaml ydb_config/my-ydb-config.yaml
   ```

3. Остановите контейнер, если он все еще запущен, и удалите созданную директорию данных:

   ```bash
   docker stop ydb-local
   rm -rf ydb_data
   ```

4. Отредактируйте скопированный файл конфигурации `ydb_config/my-ydb-config.yaml` по своему усмотрению.

5. При запуске контейнера смонтируйте отредактированный файл конфигурации в `/ydb_data/cluster/kikimr_configs/config.yaml`:

   ```bash
   docker_args=(
       -d
       --rm
       --name ydb-local
       --hostname localhost
       --platform linux/amd64
       -p 2135:2135
       -p 2136:2136
       -p 8765:8765
       -v $(pwd)/ydb_certs:/ydb_certs
       -v $(pwd)/ydb_data:/ydb_data
       -v $(pwd)/ydb_config/my-ydb-config.yaml:/ydb_data/cluster/kikimr_configs/config.yaml
       -e GRPC_TLS_PORT=2135
       -e GRPC_PORT=2136
       -e MON_PORT=8765
       ydbplatform/local-ydb:latest
   )
   
   docker run "${docker_args[@]}"
   ```

В этом примере локальный файл `ydb_config/my-ydb-config.yaml` подменяет конфигурацию по умолчанию внутри контейнера.
