2.5 KiB
title | date | draft | pre | weight | tags | ||||
---|---|---|---|---|---|---|---|---|---|
Docker | 2020-05-26T20:57:28+03:00 | false | <i class="fab fa-docker"></i> | 4 |
|
Supported operating systems
The Infection Monkey Docker container works on Linux only. It is not compatible with Docker for Windows or Docker for Mac.
Deployment
Linux
To extract the tar.gz
file, run tar -xvzf monkey-island-docker.tar.gz
.
Once you've extracted the container from the tar.gz file, run the following commands:
sudo docker load -i dk.monkeyisland.1.10.0.tar
sudo docker pull mongo:4.2
sudo mkdir -p /var/monkey-mongo/data/db
sudo docker run --name monkey-mongo --network=host -v /var/monkey-mongo/data/db:/data/db -d mongo:4.2
sudo docker run --name monkey-island --network=host -d guardicore/monkey-island:1.10.0
Wait until the Island is done setting up and it will be available on https://localhost:5000
Upgrading
Currently, there's no "upgrade-in-place" option when a new version is released. To get an updated version, download it, stop the current container and run the installation commands again with the new file.
If you'd like to keep your existing configuration, you can export it to a file using the Export config button and then import it to the new Monkey Island.
Troubleshooting
The Monkey Island container crashes due to a 'UnicodeDecodeError'
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xee in position 0: invalid continuation byte
You may encounter this error because of the existence of different MongoDB keys in the monkey-island
and monkey-mongo
containers.
Starting a new container from the guardicore/monkey-island:1.10.0
image generates a new secret key for storing sensitive information in MongoDB. If you have an old database instance running (from a previous run of Monkey), the key in the monkey-mongo
container is different than the newly generated key in the monkey-island
container. Since encrypted data (obtained from the previous run) is stored in MongoDB with the old key, decryption fails and you get this error.
You can fix this in two ways:
- Instead of starting a new container for the Monkey Island, you can run
docker container start -a monkey-island
to restart the existing container, which will contain the correct key material. - Kill and remove the existing MongoDB container, and start a new one. This will remove the old database entirely. Then, start the new Monkey Island container.