Если вам нужно поделиться папкой личного сервера с кем-то, то вы в правильном месте.
Есть очень простой способ сделать это с помощью docker !
Давайте посмотрим!
Мы будем использовать возможности docker для привязки физических томов к конкретному контейнеру.
Флаг -v
Согласно официальной документации Docker, флаг “-v” “состоит из трех полей, разделенных символами двоеточия (:).
Поля должны быть расположены в правильном порядке, и значение каждого поля не сразу очевидно.
- В случае именованных томов первое поле – это имя тома, которое является уникальным для данной хост-машины. Для анонимных томов первое поле опускается.
- Второе поле – это путь, по которому файл или каталог монтируются в контейнер.
- Третье поле является необязательным и представляет собой список опций, разделенных запятыми, например ro.”.
Контейнер apache
Docker позволяет легко развернуть http-сервер с помощью контейнера “httpd” (https://hub.docker.com/_/httpd).
Этот контейнер будет запущен на сервере, используемом для совместного доступа к определенной папке.
Извлечение образа
docker pull httpd
Запуск контейнера
docker run --detach --name=simple-share -v /path/to/shared/directory:/usr/local/apache2/htdocs/my/specific/shared/directory -p incoming-port:80 httpd:latest
Эта команда выполнит следующее:
- Запустит контейнер, назвав его “simple-share”.
- Смонтирует “/path/to/shared/directory” в “/usr/local/apache2/htdocs/my/specific/shared/directory”
- Перенаправит все запросы на сервере, используя “incoming-port”, на порт http.
Используя http://my-server-ip-or-dns:incoming-port/my/specific/shared/directory, остальные смогу получить доступ к содержимому.
см. также:
- 🐳 Переключение пользователя в образе или контейнере Docker
- 🐳 Автоматический вход в Docker реджестри скриптом Bash
- 🐳 Как уменьшить размер тома данных Docker в Docker Desktop на Windows
- 🐳 Использование if-else в Dockerfile
- 🐳 Установка системы управления документами (СУД) Docspell на Docker