Skip to content
Open console

Docker

Docker is an open-source platform for building, shipping, and running applications in containers. This image provides a clean Ubuntu 24.04 environment with Docker CE and Docker Compose pre-installed, ready for you to deploy any containerised workload.

ComponentVersion
Docker CELatest stable
Docker Compose pluginLatest stable
Ubuntu24.04 LTS
ssh ubuntu@<your-vm-ip>

There is no first-boot configuration. Docker starts immediately after the VM boots.

docker version
docker compose version

The ubuntu user is pre-added to the docker group, so you can run Docker commands without sudo.

docker run --rm hello-world

Create a docker-compose.yml file and bring up your stack:

docker compose up -d
# List running containers
docker ps
# View logs for a container
docker logs <container-name> -f
# Stop a container
docker stop <container-name>
# Pull the latest image
docker pull <image-name>
# Check Docker service status
systemctl status docker
# Restart Docker
sudo systemctl restart docker

Docker log files are limited to 10 MB per file with a maximum of 3 rotated files to prevent disk exhaustion.

UFW is not enabled by default in the Docker marketplace image.

The ZCP firewall and port-forwarding rules remain part of exposure control. Before you expose application ports, enable and configure UFW or another host firewall. To use UFW, allow SSH before you enable it:

sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status

When you publish container ports with -p or ports: in Compose, Docker manages its own iptables rules. These rules can bypass UFW, so do not rely on UFW alone to restrict a published port.

To make a published port available only on the VM, bind it to the loopback interface:

docker run -p 127.0.0.1:80:80 <image>

Or in docker-compose.yml:

ports:
- '127.0.0.1:80:80'

Ask the ZCP docs

Type a question and pick an assistant. The assistant opens in a new tab and reads this page and the full ZCP documentation, so its answer comes from our docs.

Example questions

Ask with

Your question goes to the assistant you pick, under its own terms.