Especially for Seasoned Users
Today, we are excited to share something the team has been working tirelessly on for the past few months: our ‘Dockerized’ Dynamic Update Client (DUC). In our previous blog, we shared how the No-IP team are big Linux fans. Having the Docker DUC is a win not just for our customers, but for the No-IP team as well. Therefore, it was only a matter of time before our internal Linux fans developed and released a Docker DUC for our more seasoned customers who prefer to use Docker.
The No-IP DUC for Docker is a handy tool that automates the process of keeping your dynamic IP address in sync with your No-IP hostname(s). Our DUC continually checks for IP address changes in the background and automatically updates the DNS at No-IP whenever it changes for devices that are not already integrated with No-IP.
Take a look below at the installation process, specialized features, and some helpful tips.
Installation Process
Although this Docker image runs the Linux DUC internally, the underlying program is the same (noip-duc), and the installation process is fairly different.
Before you get started, there are a few notes before you start the installation process:
- This docker image is based on our Official Linux DUC version 3, which you can read more about here.
- You will need Docker already installed to follow this guide.
First, pull the Docker container from Github Container Registry (GHCR):
docker pull ghcr.io/noipcom/noip-duc:latest
We have images for AMD64, ARMv7 (armhf) and ARM64 available.
Then, create an .env file (e.g. noip-duc.env) in a safe place, which includes your No-IP credentials.
Please note: For security and convenience, it’s best to store your No-IP credentials in an environment file (.env) rather than entering them directly in the command line. Since you are storing sensitive information here, make sure you set the permissions appropriately, ideally 0600
.
These environment variables can be passed to docker with –env-file or to Docker-Compose as env_file:. Docker compose will also look for a .env file in the same directory.
Example configuration file (noip-duc.env):
# noip-duc.env with DDNS Key
NOIP_USERNAME=DdnsKeyUser
NOIP_PASSWORD=DdnsKeyPass
NOIP_HOSTNAMES=all.ddnskey.com
Note that with DDNS Keys, you do NOT need to specify a hostname in your configuration. The hostname all.ddnskey.com
is used for ALL DDNS Keys.
Make sure to replace DdnsKeyUser
, DdnsKeyPass
, with your credentials that were generated when you created a new DDNS Key.
Lastly, run the Docker container with the environment file with the following command:
docker run -d --env-file noip-duc.env --name noip-duc ghcr.io/noipcom/noip-duc:latest
Note: There are additional options and Environment Variables which can be viewed by running
docker run noip-duc --help.
To learn more about the installation process, or to check out some commonly asked questions, you can check out the guide in the Knowledge Base.
IPv6
Just like our Linux DUC, the Docker DUC also supports IPv6!
To update your host to an IPv6 address you will need to create a new hostname as an AAAA (IPv6) type. You can read more about that here.
To enable No-IP’s IPv6 update method add the following line to your ENV file:
IP_METHOD=http://ip1.dynupdate6.no-ip.com
Docker DUC Logs
One of the most popular inquiries regarding DUC is how to find logs.
Running the command docker logs noip-duc
should output logs that look just like the output of the Linux DUC.
One Team, One DUC Dream
Like with our Linux DUC, the No-IP team is so grateful to our customers who volunteered to be our beta testers and provided valuable feedback. The No-IP team values any and all feedback so we can make our services and products the best possible for our users. We love open-source and welcome any contributions.
If you find a bug or want to suggest an improvement, feel free to create a pull request or an issue. Or, you can always send your feedback to our support team at support@noip.com.
Need help?
Encountered a problem or have questions? Check our Github Issues page for previously reported bugs, and don’t hesitate to create a Support Ticket. We’re here to help you out!