Troubleshooting
Updating Images/Containers
In order to update an image, you can use a few different methods. If you don't have access to the CLI and wanted to use a GUI, then portainer is your best bet. If you are on a system like UNRAID or proxmox, then you have a GUI already and may not need portainer. The instructions below are for portainer, but could be applied to any solution as docker is mostly flexible across all those systems.
Using Portainer
-
Login to Portainer and select your stack
-
Click on Your container you want to update and go to its details screen
-
Click "Recreate"
-
Ensure that the option to "re-pull image" is toggled on. This will pull the latest image and recreate the container for you.
Update Using the CLI
Do the following command to pull the latest image:
docker compose pull
Then spin up your environment again (either with the startup script) or docker compose
./scripts/startup.sh jellyfin
OR (all containers not behind a profile)
docker compose up -d
OR (individual container)
docker compose up <CONTAINER_NAME> -d
OR (with profile flag)
docker compose --profile jellyfin up -d
No Connection to the container?
Usually you can connect internally on your home network, but when you start to try to expose things to the outside world, the containers are not accessible on the host system.
Commonly on Linux systems, there is a firewall installed that blocks things (UFW). It is not safe to disable this, but some do that. ufw disable. But if you would like to keep it enabled, there is a docker extended version for ufw that will read your containers and allow connections to those interfaces exposed for you. This very well may solve your problems and lots of headaches.
- ufw-docker(Github)
- Example
sudo ufw-docker allow jellyfin- this would look at your running jellyfin containers and allow those ports through your firewall so you can hit it from outside your host network or machine. - Then you would do
sudo ufw-docker installto commit any new entries to the ufw table
- Example
I created a little bash script to run as a cron after my system reboots in the event that the docker daemon assigns my containers a new IP Address. This could affect their ability to be allowed through the firewall.
fixUfwDockerPermissions.sh----
#!/bin/bash
echo "Cleaning Up UFW Docker permissons"
ufw-docker allow dashy
ufw-docker allow emby
ufw-docker allow jellyfin
ufw-docker allow plex
ufw-docker allow sonarr
ufw-docker allow radarr
ufw-docker allow komga
ufw-docker allow prowlarr
ufw-docker allow portainer
ufw-docker allow jellyseerr
ufw-docker allow pihole
ufw-docker allow heimdall
echo "Trying to clean up home automation if they exist"
ufw-docker allow homeassistant
ufw-docker allow zwavejs
ufw-docker allow zigbee2mqtt
echo "Applying rules"
ufw-docker install
echo "Exiting gracefully"
exit 0
MacOS has something similar in System Preferences, but if you are a CLI person, then you can view this help article.
Another common problem would be if you are using network_mode: host - this basically removes any exposed custom ports from your docker compose file. Check that you are referring to the default exposed ports or exposing them on another container that is not network_mode: host - you will want the container you are wanting to be network_mode: bridge or just remove that key and bridge is the default.