|
|
|
@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
### **0. Устанавливаем докер, если он еще не установлен**
|
|
|
|
|
[Install Docker Engine on Ubuntu | Docker Docs](https://docs.docker.com/engine/install/ubuntu/) <br/>
|
|
|
|
|
[Install Docker Engine on Debian | Docker Docs](https://docs.docker.com/engine/install/debian/)
|
|
|
|
|
|
|
|
|
|
### **1. Скачивание образа `wandb/local`**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker pull wandb/local
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **2. Создание общей сети `wandb_network`**
|
|
|
|
|
|
|
|
|
|
Docker-контейнеры взаимодействуют внутри одной сети. Создадим сеть:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker network create wandb_network
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Проверим, что сеть создана:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker network ls
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **3. Создание `volume` для хранения данных WandB**
|
|
|
|
|
|
|
|
|
|
Создадим каталог на диске для хранения данных:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
mkdir -p /media/Data1/wandb_local/wandb_vol
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **4. Запуск `wandb_local`**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker run -d --network wandb_network -p 0.0.0.0:8085:8080 --name wandb_local \
|
|
|
|
|
-v /media/Data1/wandb_local/wandb_vol:/vol \
|
|
|
|
|
wandb/local
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- `--network wandb_network` – подключаем контейнер к созданной сети.
|
|
|
|
|
- `-p 0.0.0.0:8085:8080` – проксируем порт 8080 внутри контейнера на 8085 хоста.
|
|
|
|
|
- `-v /media/Data1/wandb_local/wandb_vol:/vol` – монтируем папку для хранения данных.
|
|
|
|
|
|
|
|
|
|
Проверяем, что контейнер запущен:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker ps | grep wandb_local
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **5. Подключение других контейнеров к `wandb_network`**
|
|
|
|
|
|
|
|
|
|
#### **Подключение уже работающего контейнера**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker network connect wandb_network <container_name>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Где `<container_name>` – имя или ID контейнера.
|
|
|
|
|
|
|
|
|
|
#### **Подключение контейнера при запуске**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker run -it --rm --network wandb_network my_container_image bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Теперь этот контейнер сможет обращаться к `wandb_local` по адресу `http://wandb_local:8080`.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **6. Проверка сети `wandb_network`**
|
|
|
|
|
|
|
|
|
|
Чтобы убедиться, что сеть создана и в ней есть контейнеры:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker network inspect wandb_network
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **7. Проверка сетей контейнера `wandb_local`**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker inspect -f '{{json .NetworkSettings.Networks}}' wandb_local | jq .
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
(если `jq` не установлен, просто используйте `docker inspect wandb_local` и ищите `NetworkSettings`).
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **8. Проверка сетей подключаемого контейнера**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker inspect -f '{{json .NetworkSettings.Networks}}' <container_name> | jq .
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Если контейнер не в сети `wandb_network`, подключите его:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker network connect wandb_network <container_name>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **9. Логин в `wandb_local`**
|
|
|
|
|
|
|
|
|
|
Теперь нужно авторизоваться в локальном WandB:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
wandb login --relogin --host=http://wandb_local:8080
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
После этого можно использовать WandB в контейнерах, подключенных к `wandb_network`. 🚀
|