Troubleshooting
Running Docker: Hardware assisted virtualization and data execution protection must be enabled in the BIOS
Problem running Hyper-V (Windows)
Depending on your PC model or BIOS settings, it may be required to enable specific features for running the docker virtualization.
After each step a reboot is required to activate changes! |
-
Solution-A (If Hyper-V is totally disabled or not installed)
-
Open PowerShell as administrator and
-
Enable Hyper-V with:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
-
-
Solution-B (If Hyper-V feature is already enabled but doesn’t work)
-
Open PowerShell as administrator and
-
Modify Hyper-V launch to auto:
bcdedit /set hypervisorlaunchtype auto
-
-
Solution-C
-
you need to access your PCs BIOS
-
How to force Percept to stop or how to stop not correctly terminated Percept instances
You can use docker ps
inside of your command line to see which instances are still active.
Percept automatically starts and stops docker containers on demand. |
This will only work in the case you want to terminate all Percept instances in case ctrl+c
does not work and/or clean up instances which should already be stopped.
You can then run docker stop
and add the container ID of the containers to stop e.g.
docker stop 1f58924a885e e8bce70a796c 41c6efce8103 fcb77da3b023 c1cfb25c3555 ed907ee7fff8
for the image above, to stop all running containers.
-
Helpful Docker Commands
-
docker ps
shows all running docker containers -
docker image ls
shows all available docker images -
docker image prune
removes unused images (see docker documentation for details: https://docs.docker.com/engine/reference/commandline/image_prune/) -
docker system prune
to remove all unused containers, networks, images (both dangling and unreferenced), and, optionally, volumes (see docker documentation for details: https://docs.docker.com/engine/reference/commandline/system_prune/)
Error: iptables failed
If you get the following error when starting Percept or a Project in Percept, which includes iptables failed … iptables: No chain/target/match by that name
(see the image below as well)
or
ERROR: Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD -o br-be839b6aabca -j DOCKER: iptables v1.6.1: Couldn't load target `DOCKER':No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
(exit status 2)
if you are calling docker-compose up
.
The issue is most likely the following:
Docker uses an iptables chain "DOCKER" for adding port mappings to containers. You can check for its presence by running
-
iptables -L -v -n
If this chain is missing, Percept would not start up and if it is already running, launching a project will fail because it creates a port mapping on the fly.
Please check your system if something is deleting this chain. This could be a firewall script, a startup script, a VPN connect script, a restore of the iptables saved before docker was run (service iptables save
) or a manually ran command (e.g. iptables -t filter -F
followed by iptables -t filter -X
).
You can recreate the docker iptables by restarting the docker daemon
e.g. on Ubuntu: systemctl restart docker
Error Port 80 not available
It can happen, especially on Windows based systems, that another system resource or application is using Port 80. Therefore the frontend will not start. You can change the port used by the frontend in the docker-compose file. See ports used by Percept for a list of used ports and if you can change them.
Error the container is already in use by container …
If you get the error about container is already in use
during docker-compose up
it might be that there are some stopped or dangling Percept containers which interfere with the new ones.
To resolve this error:
-
Make sure that you do not have any old Percept container running or stopped after upgrading to a newer Percept version, see (How to upgrade Percept).
-
Use
docker-compose down
in the directory of the Percept instance you started before the current one -
Try to remove all stopped container by calling
docker container prune -f
from a command lineThis will also remove other stopped containers not only the ones from Percept (Be careful with this command if you have other docker containers as well) -
Try calling
docker system prune
in a command line to remove all stopped containers, networks not used by containers and images, for details have a look at Docker System Prune DocumentationThis command will affect all other docker containers not only the ones from Percept (Be careful with this command if you have other docker containers as well)