【Dcoker】Sambaファイルサーバコンテナ構築手順と使い方(dperson/samba)

Dockerでファイルサーバ(Samba)を構築しました。Windows10でも動作確認ができており、Dockerをインストール済みであれば1分もしないうちにファイルサーバを立てることができます。

Dockerのインストール手順はこちらのページを参照

Dockerコンテナでファイルサーバ(Samba)を簡単に構築する手順(dperson/samba)

ファイルサーバ(Samba)のコンテナは以下のイメージから作成します。
【Docker】dperson/samba

また、Dockerコンテナの構築は公式サイトの設定を元に構築します。

Dockerイメージダウンロード

以下コマンドでDockerイメージをダウンロードします。

# docker pull dperson/samba

イメージがダウンロードされていることを確認します。

# docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
dperson/samba         latest    aac8a52c5b16   8 months ago   52.1MB

Dockerコンテナ起動(ファイルサーバ(Samba))

イメージを正常にダウンロードしたら以下コマンドでDockerコンテナを起動します。
※コピペでいけます。

このコマンドですぐにファイルサーバへアクセスすることできます。

# docker run -it --name samba_docker -p 139:139 -p 445:445 -v /home/shares/samba:/home/shares/samba -d dperson/samba -w "WORKGROUP" -u "samba;pass" -s "samba;/home/shares/samba;yes;no;yes;"

ファイル共有フォルダの権限を付与

上記でファイルサーバは完成しますが、書き込み権限などがないため以下コマンドで対象のフォルダに権限を与えます。

sambaコンテナへアクセス

# docker exec -it samba_docker /bin/bash

以下フォルダへのアクセス権を許可

# chmod 777 /home/shares/samba/

ファイアウォールにてSambaで使用するポートを開放

今回構築したSambaコンテナでは以下のポートの開放をしておきます。

# firewall-cmd --add-port=445/tcp --zone=public --permanent
# firewall-cmd --add-port=139/tcp --zone=public --permanent
# firewall-cmd --add-port=137/udp --zone=public --permanent
# firewall-cmd --add-port=138/udp --zone=public --permanent
# firewall-cmd --reload

ポート解放後以下のコマンドで対象のポートが許可されていることを確認します。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 445/tcp 139/tcp 137/udp 138/udp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Windowsでファイルサーバへアクセスします。

\\<IPアドレス>

Windowsからファイルサーバ(Samba)へアクセスできないときの対処法

Sambaでファイルサーバを構築してもWindowsからアクセスできないことがあります。
特にWindows10では最近のアップデートでSambaのバージョンによってはアクセスができないようになっているようです。

「net use」コマンドでアクセス

一番簡単な方法は「net use」コマンドを使用することです。
この方法がおすすめです。

コマンドの書式は以下の通り。

PS C:\> net use \\<IPアドレス> /user:<userID> <Password>
コマンドは正常に終了しました。

詳細は以下を差難航にしてください。

SMBバージョン1.0を許可

一つ目の対応方法はWindows10で「SMB1.0クライアント」を許可します。
手順は以下となります。

  1. Windowsメニューから右クリック>「アプリと機能」 を選択
  2. 「アプリと機能」>「関連設定」>「プログラムと機能」 を選択
  3. 「プログラムと機能」>左メニュー「Windowsの機能の有効化または無効化」を選択
  4. 「Windowsの機能の有効化または無効化」>「SMB 1.0/CIFS ファイル共有のサポート」>「SMB 1.0/CIFS クライアント」にチェックを入れて「OK」を押す
  5. 設定後Windowsを再起動

レジストリ変更

2つ目は以下レジストリを変更します。

  1. Windowsタスクバーの検索ボックスより「regedit」と入力し、「レジストリ エディター」が表示されるのでクリック
  2. レジストリから以下階層へアクセス
    キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  3. 「AllowInsecureGuestAuth」をダブルクリックし、「値のデータ(V)」を「0」から「1」へ変更
  4. 再起動

参考URL
https://www.nedia.ne.jp/blog/2019/04/02/13919

すぐにファイルサーバを構築したい方はぜひ参考にしてください。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!