Эта статья была обновлена с тех пор, как она была первоначально опубликована 29 июля 2023 года. Обзор.
В этой статье представлено пошаговое руководство о том, как создать Samba Share из контейнера Docker с использованием сервера Ubuntu в качестве операционной системы хоста. Учебник охватывает две основные темы:
Установка и настройка SAMBA на сервере Ubuntu
- Установите Samba с Sudo apt -get установить samba -y
- Начните и включите сервис Samba
- Установите пароль для пользователей, которые получат доступ к Share
Создание постоянного тома Docker, отображаемого с Samba Share:
- Создайте новую группу и добавьте к ней пользователей, соответственно установив разрешения
- Создайте постоянный объем Docker с томом Docker Create -opt type = none –opt o = bind –opt device =/data public
Развертывание контейнера Nginx с использованием тома Docker:
- Установите объем Docker в каталог/usr/share/nginx/html в контейнере Nginx
- Запустите новый экземпляр nginx с Docker Run -d –name nginx -samba -p 8090: 80 -v public:/usr/share/nginx/html nginx
Тестирование настройки:
- Убедитесь, что файл index.html подается правильно из акции Samba
В заключении статья отмечается, что эта настройка может не подходить для производственных сред, но она может быть полезна для разработки или внутренних услуг/приложений.
Ключевые выводы:
- Установите и настройте Samba на сервере Ubuntu
- Создайте постоянный объем Docker, отображенный в общем каталоге
- Развернуть контейнер Nginx, используя объем Docker
- Проверьте настройку и убедитесь, что файлы подаются правильно из Samba Share
В какой-то момент в вашем сроке развития облака или контейнера вам придется поделиться папкой с сервера Linux. Возможно, вам придется сделать это только в среде DEV, где вы хотите иметь возможность делиться файлами с другими разработчиками на стороннем, облачном экземпляре Linux. Или, может быть, обмен файлами является частью приложения или услуги, которое вы создаете.
А поскольку Samba (приложение Linux для обмена файлами Windows) способна к высокой доступности и масштабированию, имеет смысл, что его можно использовать (путем использования небольшого творчества) в вашем бизнесе, вашем стеке приложения или ваших услугах.
Возможно, вы даже захотите использовать Samba Share, чтобы разместить объем для постоянного хранения (что я собираюсь показать вам, как). Это может быть удобно, если вы хотите поделиться обязанностями для, скажем, обновления файлов для веб-сайта Nginx, который был развернут через Docker.
Даже если вы не используете Samba Shares для разработки Cloud или Container, вам нужно будет знать, как установить SAMBA и настроить ее так, чтобы его можно было использовать для обмена файлами в вашу сеть с сервера Linux, и я собираюсь показать вам, как это сделано.
Здесь есть несколько движущихся частей, поэтому обратите пристальное внимание.
Я собираюсь предположить, что у вас уже установлен Docker на сервере Ubuntu, но это единственное предположение, которое я сделаю.
Как установить Samba на сервере Ubuntu
Первое, что нам нужно сделать, это установить Samba на сервере Ubuntu. Войдите в свой экземпляр и установите программное обеспечение с помощью команды:
sudo apt -get установить samba -y 1 sudo apt -get установить samba -y
Когда эта установка завершится, запустите и включите сервис Samba с:
Sudo sysemctl включить -сейчас SMBD 1 Sudo sysemctl включить -сейчас SMBD
Самба теперь установлена и работает.
Затем вам нужно добавить пароль для любого пользователя, который будет получить доступ к общему. Допустим, у вас есть Джек пользователя. Чтобы установить пароль Jack’s Samba, выпустите следующую команду:
sudo smbpasswd -a jack 1 sudo smbpasswd -a jack
Вам будет предложено ввести и проверить пароль.
Далее, включите пользователю с:
sudo smbpasswd -e jack 1 sudo smbpasswd -e jack
Как настроить первую общую Samba Share
Хорошо, давайте предположим, что вы хотите создать свою долю в папке /данных. Сначала создайте эту папку с командой:
Sudo mkdir /data 1 sudo mkdir /data
Чтобы дать ему правильные разрешения (поэтому тех пользователей, которые нуждаются в доступе), вы можете создать новую группу, а затем добавить пользователей в группу. Например, создайте группу с именем редактора с командой:
редакторы Sudo GroupAdd 1 Sudo GroupAdd Редакторы
Теперь измените право собственности на каталог /данные с помощью команды:
Sudo Chow -r: редакторы /данные 1 Sudo Chow -r: редакторы /данные
Далее добавьте конкретного пользователя в эту новую группу с:
Sudo usermod -ag Editors Пользователь 1 sudo usermod -Ag Редакторы пользователь
Где пользователь является конкретным именем пользователя.
Теперь убедитесь, что у группы редакторов есть разрешение на запись /каталог /данные:
sudo chmod -r g+w /data 1 sudo chmod -r g+w /data
На этом этапе любой член группы редакторов должен иметь возможность получить доступ к Samba Share. То, как они это делают, будет зависеть от операционной системы, которую они используют.
Как создать постоянный объем, нанесенный на долю
Для нашего следующего трюка мы собираемся создать постоянный том Docker (названный публичный), который сопоставлен с каталогом /данных. Это делается со следующей командой:
Том Docker Create -opt type = none —Opt o = bind -opt device =/data public 1 том Docker create -one -none —Opt o = bind -opt device =/data public
Чтобы проверить творение, вы можете проверить громкость с помощью команды:
Том Docker осмотрите публичный том Docker. Проверьте публику
Вывод будет выглядеть примерно так:
[
{
«CreatedAt»: «2023-07-27T14:44:52Z»,
«Driver»: «local»,
«Labels»: {},
«Mountpoint»: «/var/lib/docker/volumes/public/_data»,
«Name»: «public»,
«Options»: {
«device»: «/data»,
«o»: «bind»,
«type»: «none»
},
«Scope»: «local»
}
]
123456789101112131415
[{«CreatedAt»: «2023-07-27T14:44:52Z»,»Driver»: «local»,»Labels»: {},»Mountpoint»: «/var/lib/docker/volumes/public/_data»,»Name»: «public»,»Options»: {«device»: «/data»,»o»: «bind»,»type»: «none»},»Scope»: «local»}]
Теперь добавим файл index.html, который будет размещен в акции и используется нашим контейнером Docker Nginx. Создайте файл с помощью:
nano /data/index.html 1 nano /data/index.html
В этом файле вставьте следующее:
Сохраните и закройте файл.
Развернуть контейнер Nginx
Теперь мы можем развернуть наш контейнер Nginx, который будет использовать файл index.html в нашем общественном томе, который является частью нашей Samba Share. Для этого выпустите команду:
Docker Run -d -name nginx -samba -p 8090: 80 -v public:/usr/share/nginx/html nginx 1 docker run -d -d -nage -samba -p 8090: 80 -v public:/usr/nginx/html nginx.
Как только контейнер развернут, укажите веб -браузер на (где сервер является IP -адресом сервера хостинга), и вы должны увидеть файл index.html, который мы создали выше (рисунок 1).
Рисунок 1: Наш пользовательский индекс. HTML был официально подан в контейнере Docker.
Еще одна действительно классная вещь в этой настройке заключается в том, что любой, у кого есть доступ к Samba Share, может редактировать файл index.html (даже при запуске контейнера) для изменения страницы. Вам даже не нужно останавливать контейнер. Вы можете даже создать скрипт для автоматизации обновлений файла, если хотите. По этой причине вы должны быть осторожны, кто имеет доступ к акции.
Поздравляю, вы только что использовали Docker и Samba вместе. Хотя это может быть не мудрым выбором для производственных сред, для разработчиков или внутренних услуг/приложений, это, безусловно, может пригодиться.
FAQ для Samba разделяет общие вопросы
Настройка акций Samba
- Создайте каталог на вашем сервере, который будет доступен через сеть
- Отредактируйте файл /etc/smb.conf, чтобы добавить новое определение общего определения для каталога
- Перезагрузить службу Samba для применения изменений
Доступ и управление акциями Samba
Безопасность и лучшие практики
- Сильные пароли
- Ограниченные сетевые подключения к серверу
- Шифрование (например, SSL/TLS)
- Несанкционированный доступ через слабые пароли или настройки по умолчанию
- Передача вредоносных программ с помощью зараженных файлов, передаваемых по сети
Поиск неисправностей
Дополнительные советы
Выпуск заметок
- Всегда обращайтесь к официальной документации Samba для актуальной информации об выпусках и исправлениях безопасности.
- Следите за лучшими практиками, чтобы обеспечить безопасное обмен файлами в вашей сети.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Джек Уоллен-это то, что происходит, когда генеральный разум с умом с современным Snark. Джек — искатель истины и писатель слов с квантовым механическим карандашом и разрозненным ударом звука и души. Хотя он проживает … читайте больше от Джека Валлена