TFTP Server is used for simple file transfer (typically for boot-loading remote devices). Trivial File Transfer Protocol (TFTP) is a simple protocol for exchanging files between two TCP/IP machines. TFTP servers allow connections from a TFTP Client for sending and receiving files. The TFTP protocol supports only file send and receive operations. File delete, move, and rename are not supported. Due to its limitations, TFTP is a complement to the regular FTP and not a replacement. It is only used when its simplicity is important, and its lack of features is acceptable. The most common application is bootstrapping, although it can be used for other purposes as well.
Preboot Execution Environment(PXE) is a client-server interface that allows computers in a network to be booted from the server before deploying the obtained PC image in local and remote offices, for PXE enabled clients. PXE network boot is performed using client-server protocols like DHCP(Dynamic Host Configuration Protocol) and TFTP(Trivial File Transfer Protocol). PXE will be enabled by default on all computers.
$ docker run -d --name some-tftp -p 69:69/udp image:tag
$ docker run -d --name tftp-pxeboot -p 69:69/udp -e PXEBOOT=true image:tag
Where:
PXEBOOT
This variable defines the role of the TFTP server, if the value is true, server is used for PXE boot, otherwise server is used as standard TFTP server. Default value: false
TZ
This variable defines the timezone for the server. Default value: Europe/Zagreb
TFTP is a UDP-based protocol, and it uses port 69 for TFTP transfers.
To use Your files for TFTP server, mount container path /srv/tftp/ to host path.
$ -v some-host-path:/srv/tftp
To use Your PXE boot configuration, mount container path /var/lib/tftpboot/ to host path. If the value of ENV variable PXEBOOT is true, configuration will be copied to the TFTP directory.
$ -v some-host-path:/var/lib/tftpboot/
Details about TFTP parameters may be found here.
This image uses HTTP protocol for PXE boot, so boot filename is lpexlinux.0 instead of standard pxelinux.0 file. The difference between these two files, is that lpxelinux.0 enables downloading and loading initial setup files (initrd.gz, linux) from HTTP server directly, instead of downloading and loading them from the local source. Boot file lpexlinux.0 also provides loading files from local source.
Default image configuration provides installation of Ubuntu (Focal, Bionic, Xenial) and Debian (Bullseye, Buster, Stretch) distribution. Preseed files for mentioned distributions are fetched from the GitHub repository.
Content type
Image
Digest
Size
55.3 MB
Last updated
about 5 years ago
docker pull dalmatialab/tftp