Recommended Docker Images


iperf3

networkstatic/iperf3
iperf3 is a great container to leave running to do point to point max bandwidth tests on a network

docker run -d --name=iperf3-server -p 5201:5201 networkstatic/iperf3 -s

Then from any other machine in the LAN you can max speed test to this one with:

iperf3 -c hostname.example.com

And you will get results that look like:

Connecting to host docker, port 5201
[ 4] local 192.168.1.124 port 50701 connected to 192.168.1.194 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 236 MBytes 1.98 Gbits/sec
[ 4] 1.00-2.00 sec 314 MBytes 2.63 Gbits/sec
[ 4] 2.00-3.00 sec 306 MBytes 2.56 Gbits/sec
[ 4] 3.00-4.00 sec 277 MBytes 2.33 Gbits/sec
[ 4] 4.00-5.00 sec 312 MBytes 2.61 Gbits/sec
[ 4] 5.00-6.00 sec 286 MBytes 2.40 Gbits/sec
[ 4] 6.00-7.00 sec 307 MBytes 2.58 Gbits/sec
[ 4] 7.00-8.00 sec 287 MBytes 2.40 Gbits/sec
[ 4] 8.00-9.00 sec 258 MBytes 2.16 Gbits/sec
[ 4] 9.00-10.00 sec 282 MBytes 2.36 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 2.80 GBytes 2.40 Gbits/sec sender
[ 4] 0.00-10.00 sec 2.80 GBytes 2.40 Gbits/sec receiver

Portainer

Portainer is a great web interface that lets you control docker

docker volume create portainer_data #otherwise you get some random named volume
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Then access it with http://localhost:9000

OpenVPN-AS Access Server

https://hub.docker.com/r/linuxserver/openvpn-as

Runs a private vpn that will route all traffic through the server’s ip. This script assumes you are have Docker-Router already running to handle https certificate and vhost mapping.

CONTAINER_NAME=openvpn
IMAGE_NAME=linuxserver/openvpn-as

# If an old container exists, stop it, rename it and disable its restart policy
docker rm ${CONTAINER_NAME}-old || true
docker stop ${CONTAINER_NAME} || true
docker rename ${CONTAINER_NAME} ${CONTAINER_NAME}-old || true
docker update --restart=no ${CONTAINER_NAME}-old || true

# Get latest version
docker pull ${IMAGE_NAME}

# Startup new container
docker run --detach --name=${CONTAINER_NAME} --label=router.domain=vpn.example.com --label=router.port=943 --cap-add=NET_ADMIN -e PUID=1000 -e PGID=1000 -e TZ=America/Chicago -p 943:943 -p 9443:9443 -p 1194:1194/udp -v /home/ubuntu/openvpn-config:/config --restart unless-stopped ${IMAGE_NAME}

http://localhost:943/admin then login with admin:password

You should create a new admin user and delete the default one as you can’t change its password.

If you are trying to ssh into the node running the vpn, you will need to add the private ip cidr of the EC2 node in the /admin/vpn_settings under Routing for Specify the private subnets to which all clients should be given access (one per line):
On amazon, it will look something like 172.31.48.0/20 depending on your VPC settings.

Splunk

This is a great log analyzer that lets you load in any text logs and search for patterns or create dashboards.

By default, when you create a Splunk Docker container, it will enable a Splunk Trial license which is good for 30 days from the start of your instance.

  • 500MB/day log ingest
  • Allowed 3 license violations in last 30 days (you can ingest any amount of data in 24h)
  • 30 Day Trial, can register to get to Splunk Free license
    • no alerting/monitoring
    • no users
    • no report clustering
docker run -d -p 8000:8000 -e "SPLUNK_START_ARGS=--accept-license" -e "SPLUNK_PASSWORD=<password>" --name splunk splunk/splunk:latest

I'm a 32 year old UIUC Computer Engineer building mobile apps, websites and hardware integrations with an interest in 3D printing, biotechnology and Arduinos.