docker: поддержка nfs томов
This commit is contained in:
parent
239832b1f0
commit
73fb121fda
|
@ -8,7 +8,7 @@
|
||||||
docker system prune -a
|
docker system prune -a
|
||||||
```
|
```
|
||||||
|
|
||||||
### image
|
## image
|
||||||
|
|
||||||
Список загруженных `image`:
|
Список загруженных `image`:
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ docker load < image.tar.gz
|
||||||
docker load --input image.tar
|
docker load --input image.tar
|
||||||
```
|
```
|
||||||
|
|
||||||
### container
|
## container
|
||||||
|
|
||||||
Список контейнеров:
|
Список контейнеров:
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ docker run --restart always --name mynginx -p 8080:80 -d nginx:alpine
|
||||||
- `-d` - запустить контейнер в фоновом режиме (*detached mode*)
|
- `-d` - запустить контейнер в фоновом режиме (*detached mode*)
|
||||||
- `nginx:alpine` - имя образа `image`, на основе которого запускается контейнер
|
- `nginx:alpine` - имя образа `image`, на основе которого запускается контейнер
|
||||||
|
|
||||||
### volume
|
## volume
|
||||||
|
|
||||||
Список `volume`:
|
Список `volume`:
|
||||||
|
|
||||||
|
@ -135,3 +135,77 @@ docker volume rm volume_name volume_name
|
||||||
```sh
|
```sh
|
||||||
docker volume prune
|
docker volume prune
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Монтирование `volume`
|
||||||
|
|
||||||
|
#### Использование `nfs`
|
||||||
|
|
||||||
|
При монтировании сетевого `volume` типа `nfs` необходимо убедиться, что права (`uid` и `gid`) расшариваемого каталога, установленные **на сервере**, совпадают с правами пользователя, от которого выполняется запуск контейнера, а также выставлены правильные права на расшариваемый каталог в файле `/etc/exports` **на сервере** `nfs`.
|
||||||
|
|
||||||
|
Т.е., необходимо, чтобы **на сервере**, где поднят `nfs-server` в файле `/etc/exports` были правильно указаны права (`uid` и `gid`) каталогу, который будет расшариваться и использоваться в качестве `volume`, и сам расшариваемый каталог обладал соответствующими правами (`uid` и `gid`).
|
||||||
|
|
||||||
|
**Например:**
|
||||||
|
|
||||||
|
Необходимо поднять контейнер `gitea` с использованием `nfs` тома. Т.к. `gitea` запускается с правами `1000:1000` - то и производит запись в `volume` от этих же прав.
|
||||||
|
|
||||||
|
К примеру, на `nfs` сервере необходимо использовать каталог `/volumes/gitea` в качестве расшариваемого ресурса для использования в качестве `volume` для `gitea`.
|
||||||
|
|
||||||
|
В файле `/etc/exports` внести запись:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/volumes/gitea <ip-address>(rw,sync,insecure,all_squash,anonuid=1000,anongid=1000,no_subtree_check,nohide,fsid=1)
|
||||||
|
```
|
||||||
|
|
||||||
|
где `<ip-address>` необходимо указать IP-адрес или подсеть
|
||||||
|
|
||||||
|
Установить права `1000:1000` на расшариваемый каталог:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
chown 1000:1000 /volumes/gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
**Для проверки** можно произвести монтирование каталога в `host` системе, где установлен `docker`. К примеру, каталог для монтирования указан в `/mnt/volumes/gitea`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mount -t nfs <ip-address>:/volumes/gitea /mnt/volumes/gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
Каталог в `host` системе будет смонтирован с правами `1000:1000`.
|
||||||
|
|
||||||
|
##### Создание `volume` вручную
|
||||||
|
|
||||||
|
Создание `volume` с использованием `nfs` тома:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.1,nfsvers=4,rw,async,rw --opt device=:/volumes/gitea gitea_data
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Создание `volume` в `compose`
|
||||||
|
|
||||||
|
Для использования `nfs` тома в `docker-compose` необходимо указать в секции `volume` свой том и в сервисе указать используемый `volume`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
...
|
||||||
|
|
||||||
|
services:
|
||||||
|
gitea:
|
||||||
|
...
|
||||||
|
volumes:
|
||||||
|
- type: volume
|
||||||
|
source: gitea
|
||||||
|
target: /data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
...
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
gitea:
|
||||||
|
driver: local
|
||||||
|
driver_opts:
|
||||||
|
type: nfs
|
||||||
|
o: addr=192.168.1.1,nfsvers=4,rw,async
|
||||||
|
device: ":/volumes/gitea"
|
||||||
|
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue