tyy02 / docker-filezilla

Dockerized Filezilla

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docker-filezilla

On Docker hub filezilla on Github filezilla

This is Filezilla on Docker. It has three modes: Local (no ssh server), remote with ssh server, as well as an optional script for an instant launch AWS EC2 for quick file transfers with storage to EBS volume (Amazon Elastic Block Store). Check out the [aws-filezilla.sh] (https://github.com/yantis/docker-filezilla/blob/master/examples/aws-filezilla.sh) script for this. Also, there is a script to auto create and format your EBS volume [aws-ebs-create-volume-and-format.sh] (https://github.com/yantis/docker-filezilla/blob/master/examples/aws-ebs-create-volume-and-format.sh)

Docker Images Structure

yantis/archlinux-tiny

yantis/archlinux-small

yantis/archlinux-small-ssh-hpn

yantis/ssh-hpn-x

yantis/dynamic-video yantis/filezilla yantis/thunderbird

yantis/virtualgl

yantis/wine

Usage (Local)

The recommended way to run this container looks like this. This example launches Filezilla seamlessly as if it was another program on your computer.

xhost +si:localuser:$(whoami)
docker run \
        -d \
        -e DISPLAY \
        -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
        -u docker \
        -v /:/host \
        -v $HOME/docker-data/filezilla:/home/docker/.config/filezilla/ \
        yantis/filezilla filezilla

Breakdown (Local)

$ xhost +si:localuser:yourusername

Allows your local user to access the xsocket. Change yourusername or use $(whoami) or $USER if your shell supports it.

docker run \
           -d \
           -e DISPLAY \
           -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
           -u docker \
           -v /:/host \
           -v $HOME/docker-data/filezilla:/home/docker/.config/filezilla/ \
           yantis/filezilla filezilla

This follows these docker conventions:

  • -d run in daemon mode.
  • -e DISPLAY sets the host display to the local machines display.
  • -v /tmp/.X11-unix:/tmp/.X11-unix:ro bind mounts the X11 socks on your local machine to the containers and makes it read only.
  • -u docker sets the user to docker. (or you could do root as well)
  • -v /:/host Shares the entire host hard drive with the container (you might not want to be that permissive so just change "/" to whatever path you want to allow. (This is optional but since Filezilla doesn't support FXP you might want to save the files somewhere)
  • -v ~/docker-data/filezilla:/home/docker/.config/filezilla/ This is where to save your config files. If you have no interest in saving them then it is optional.
  • yantis/filezilla filezilla You need to call filezilla because if you do not it will a launch the ssh server instead as a default.

Usage (Remote SSH)

The recommended way to run this container over SSH looks like this. This example launches an high performance SSH server with X-forwarding enabled. Which you can ssh -X (or -Y) into. Check out the remote-filezilla and the aws-filezilla.sh script for an example of this.

docker run \
    -ti \
    --rm \
    -v $HOME/.ssh/authorized_keys:/authorized_keys:ro \
    -p 49158:22 \
    -v ~/docker-data/filezilla:/home/docker/.config/filezilla/ \
    yantis/filezilla

Breakdown (Remote SSH)

This follows these docker conventions:

  • -ti will run an interactive session that can be terminated with CTRL+C.
  • --rm will run a temporary session that will make sure to remove the container on exit.
  • -v $HOME/.ssh/authorized_keys:/authorized_keys:ro Optionaly share your public keys with the host. This is particularlly useful when you are running this on another server that already has SSH. Like an Amazon EC2 instance. WARNING: If you don't use this then it will just default to the user pass of docker/docker (If you do specify authorized keys it will disable all password logins to keep it secure).
  • -v ~/docker-data/filezilla:/home/docker/.config/filezilla/ This is where to save your config files. If you have no interest in saving them then it is optional.
  • -v /:/host Shares the entire host hard drive with the container (you might not want to be that permissive so just change "/" to whatever path you want to allow)
  • yantis/filezilla the default mode is SSH so no need to run any commands.

Here is a screenshot of Filezilla running on Docker.

About

Dockerized Filezilla

License:MIT License


Languages

Language:Shell 100.0%