Docker

Docker containers combine software and related dependencies into a standardized unit for software development that includes everything it needs to run: code, runtime, system tools and libraries. This guarantees that your application will always run the same and makes collaboration as simple as sharing a container image.

This 1-click enables you to create a DigitalOcean droplet pre-installed with recommended Docker tools (docker-engine, docker-compose).

For reference, the packer file used to create the Docker 1-click is here, and the recommended installation steps from Docker are here.

Software Included

Package Version License
Docker CE 25.0.3 Apache 2
Docker Compose 2.17.2 Apache 2
Docker BuildX 0.12.1 Apache 2

Creating an App using the Control Panel

Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the Docker 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Docker Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token) to an environment variable or substitute it in the command below.

curl -X POST -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer '$TOKEN'' -d \
        '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image": "docker-20-04"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying Docker

Once the Docker One-Click Droplet is created, you can log into it as root. Make sure to substitute the Droplet’s public IPv4 address.

$ ssh root@your_droplet_public_ipv4

Docker -d will already be running as a service and the Docker command line tool is included in the PATH, so it’s ready to use. $ docker version command shows the version of Docker engine installed.

Note about firewall rules: If you are using the default droplet firewall rules in DigitalOcean cloud, then you just need to follow the same practices. However, if you depend on the Linux firewall (iptables), then you need to be aware of how Docker works with iptables.

After installing Docker

If you are new to Docker or have not explored all its capabilities, we highly recommend the official getting started tutorial: https://docs.docker.com/get-started/

Check versions

Execute in the ssh console:

docker version

docker compose version

docker buildx version

Language specific tutorials

Setting up a production system

NGINX Plus, the high‑performance application delivery platform, load balancer, and web server, is available as the Docker container.

In cloud computing, block storage is a network-based way to store data. Block storage services, like DigitalOcean Volumes Block Storage, provide similar behavior to traditional block storage devices, like hard drives.

The DigitalOcean Container Registry (DOCR) is a private Docker image registry with additional tooling support that enables integration with your Docker environment and DigitalOcean Kubernetes clusters. DOCR registries are private and co-located in the datacenters where DigitalOcean Kubernetes clusters are operated for secure, stable, and performant rollout of images to your clusters.

Zabbix is a monitoring system that can monitor the state of almost any element of your IT infrastructure, such as networks, servers, virtual machines, and applications.

Terraform is an IAC tool, used primarily by DevOps teams to automate various infrastructure tasks. The provisioning of cloud resources, for instance, is one of the main use cases of Terraform. It’s a cloud-agnostic, open-source provisioning tool written in the Go language and created by HashiCorp

Update instructions

Docker

  1. Go to https://download.docker.com/linux/ubuntu/dists/.
  2. Select your Ubuntu version in the list.
  3. Go to pool/stable/ and select the applicable architecture (amd64, armhf, arm64, or s390x).
  4. Download the following deb files for the Docker Engine, CLI, containerd, and Docker Compose packages:
containerd.io_<version>_<arch>.deb
docker-ce_<version>_<arch>.deb
docker-ce-cli_<version>_<arch>.deb
docker-buildx-plugin_<version>_<arch>.deb
docker-compose-plugin_<version>_<arch>.deb
  1. Install the .deb packages. Update the paths in the following example to where you downloaded the Docker packages.
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-buildx-plugin_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb

The Docker daemon starts automatically.

Docker Compose

  1. Go to https://docs.docker.com/compose/release-notes/
  2. Find new version
  3. Execute:
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v<version>/docker-compose-linux-<arch> -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose