LoginSignup
1
1

More than 1 year has passed since last update.

tftp サーバーを docker で起動する

Last updated at Posted at 2021-08-21

tftp サーバーを docker で起動する

サーバー側

準備

docker のインストール

sudo apt install -y docker.io docker-compose
sudo usermod -a -G docker $USER
sudo reboot

firewall の許可

sudo apt install -y firewalld
sudo firewall-cmd --add-port=69/udp --permanent
sudo firewall-cmd --reload

公開するディレクトリ、ファイルの準備

mkdir tftp
echo test > tftp/a.txt

tftp サーバー の docker container の起動

docker run -d -p 69:69/udp -v $(pwd)/tftp:/srv/tftp danrue/tftpd-hpa
(追記) 192.168.11.22:69:69/udp は不要

当初参考にした https://hub.docker.com/r/pghalliday/tftpdocker run -p 0.0.0.0:69:69/udp -v /var/tftpboot:/var/tftpboot -i -t pghalliday/tftp とあったので、192.168.11.22:69:69/udp が必要と考えていたが、明示的に指定する必要はない。

tftp サービスを提供する IP アドレスを 192.168.11.22 とすると以下のように実行する。

docker run -d -p 192.168.11.22:69:69/udp -v $(pwd)/tftp:/srv/tftp danrue/tftpd-hpa

参考

エラー発生時の復旧

192.168.11.22:69:69/udp192.168.11.22 の部分を変えて再起動した場合、
以下のようなエラーが出ることがある。

$ docker run -d -p 192.168.11.22:69:69/udp -v $(pwd)/tftp:/srv/tftp danrue/tftpd-hpa
4c5630dac757afb8349b1d22cb5864d1244119078bef36a104ead78b59b15e86
docker: Error response from daemon: driver failed programming external connectivity on endpoint relaxed_wing (2ff0b8103b4a6c9937de2689f43bc7eda098df84269cd55b9a646b795a5e1c7a):  (iptables failed: iptables --wait -t nat -A DOCKER -p udp -d 192.168.11.22 --dport 69 -j DNAT --to-destination 172.17.0.2:69 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).

docker サービスを再起動することにより復旧できる。

sudo systemctl restart docker

参考

クライアント側

準備

sudo apt install -y tftp-hpa

実行

$ tftp 192.168.11.22
tftp> get a.txt
tftp> quit

→ カレントディレクトリに a.txt が取得される。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1