Quick NAS Topics: Create your own iperf3 Docker Container

Posted on Updated on

In this Quick NAS Topic video and the steps further below, I use docker to create a ubuntu container with Linux tools and iperf3.

This video is a supplement for the 10Gbe Home NAS Lab Part 7. In Part 7 I show how to use these containers to network performance test the 3 NAS devices I have.  


Docker Ubuntu/iperf3 Basic Steps:  Items in-between [ ] and the brackets should be removed

  • On the NAS:
    1. Ensure devices can access the inet OR not covered in this blog, you’ll need to manually import and export images, etc. 
    2. Ensure Docker-ce and if needed Shell-in-a-box and portainer are installed and basic configuration is done.  The Synology didn’t need shell in a box or portainter
    3. Test Docker Install
      • docker -v << Shows the version
      • docker images << Show the images that are available
      • docker ps  << Shows the running containers
    4. Elevate local privileges to run docker commands
      • It may be necessary to use ‘sudo’ in front of docker commands to get them to execute, followed by the admin/root password.  Example:  sudo docker ps
    5. Download and run Ubuntu
      • docker pull ubuntu   << Image is located here https://hub.docker.com/_/ubuntu
      • docker run -it ubuntu bash  << Creates an instance of this image for us to modify and opens up the terminal
    6. Update the Ubuntu running container
      • apt-get -y update
      • apt-get install iproute2
      • apt-get install net-tools
      • apt-get install iputils
      • apt-get install iputils-ping
      • apt-get install -y iperf3
      • Test with ping and iperf3 -v
      • Do not exit
    7. Commit and push the new image
      • docker ps -l  << Check for the latest running container, and note the Container ID of the container that was just updated with these steps
      • docker commit  [Container ID]  [repository name]/[insert-container-name] 
      • docker images  << will validate that the image is now there
      • docker push [repository name]/[Container you want to push] 
  • Testing Steps
    • Check basic ping between all devices
    • Put one device in server mode iperf3 -s
    • On the other device start the test iperf3 -c [Target IP]

3 thoughts on “Quick NAS Topics: Create your own iperf3 Docker Container

    […] In Part 7 I go over how I used iperf3 to test between my different NAS devices and Windows PCs. Each NAS device are running Docker and had a ubuntu container with iperf3 installed. If you want more information on how I setup the container check out my other post here.  […]


    Ray Kowalski III said:
    February 8, 2023 at 12:23 pm

    In this video, you go briefly go over portainer and connecting it to docker. I am really stuck on this step. I am guessing you need to add the environment, but when I do, there are 4 options. I have tried a few, but when I get to the docker images command, it tells me I am not authorized. I did add a registry to connect to my docker account, but that does not seem to get me anywhere. Any help would be appreciated. I have an AS1102T, and I am trying to use iperf3 on it, but the app through Asustor is not available as it is not compatible with my NAS.


      Matt Mancini responded:
      February 11, 2023 at 11:36 am

      Thanks for the comment. I’m not quite sure where in the video or the written steps in the blog you are stuck at. I updated the blog with Numbered steps. Can you either let me know which number you are stuck on or in the video can you let me know where (Minutes/seconds) you are stuck? Also, if its easier feel free to send me a direct message via any of my social media conduits. (see my main page vmexplorer.com) – Thanks Matt.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.