Magic UI
Back to all articles
Docker
2 min read

Gluetun and Docker Containers

Using Gluetun to route Docker container traffic through a VPN

Gluetun and Docker Containers

The GitHub page for Gluetun provides lots more detail than I’m providing. I suggest you also check out the page.

Setting up Gluetun

I’m running this on my Ubuntu Server with Portainer, Docker, and Docker-Compose installed. To run Gluetun paste the following.

docker run -d --name gluetun --cap-add=NET_ADMIN \
-e VPNSP="protonvpn" -e SERVER_HOSTNAME="server" \
-e OPENVPN_USER=username -e OPENVPN_PASSWORD=password \
-e PORT=443 -e PORT=1194 \
-v /yourpath:/gluetun \
qmcgaw/gluetun

I’m using ProtonVPN, you’ll need your OpenVPN username and password from your VPN provider. You can find a list of the adjustable environment variables on the GitHub Page. If you are using ProtonVPN as well, replace the server with one of the server names. Some examples would be be-03.protonvpn.com or ca-20.protonvpn.com.

Your Gluetun container should be up now. Run docker ps to see if it is running.

Routing Through Gluetun

Port configuration When you go to your Containers in Portainer you should see the Gluetun container. If you need to forward any ports do the following.

Click on your Gluetun Container. Then click Duplicate/Edit.

Gluetun container settings

Under Network ports configuration, add your ports.

Adding port 3000

Under Actions, click Deploy the container and wait for it to deploy.

Deploy container

Container Routing

Now when you want to route a container through Gluetun go to Duplicate/Edit and change the Network and Container variables.

Editing network variables

Click Deploy the container. The container should now be routing through your VPN provider. To check you can do the following.

Click the Exec Console (rightmost) under the Quick Actions in the Container List.

Quick actions buttons

Leave the values at default and click Connect

Execute

Type in the following:

curl ifconfig.io

It’ll tell you the IP address that the container has. If it is different than your IP address then you are routing through Gluetun!