Docker
Full Title or Meme
Docker is a system for building, deploying and running complex images of a program with its runtime.
Context
- This wiki page is focus on the user of Digital Ocean from a Windows workstation targeting the Kantara preferred instance.
- With the rise of cloud computing the need arose to give users an easy way to create a run-time package that could be sent to any cloud Platform as a Service provider (PaaS) with complete interoperability.
Solutions
Docker was released in 2013 and solved many of the problems that developers had running containers end-to-end focused on these low-level features:
- A container image format
- A method for building container images (Dockerfile/docker build)
- A way to manage container images (docker images, docker rm , etc.)
- A way to manage instances of containers (docker ps, docker rm , etc.)
- A way to share container images (docker push/pull)
- A way to run containers (docker run)
Open Container Initiative was created to expand the scope of docker solutions. There are for high-level docker support.
- Open Container Initiative (OCI)
- OCI runtime specification.
- Google code for running containers as a tool and library called runc
When you run a Docker container, these are the steps Docker actually goes through:
- Download the image
- Unpack the image into a "bundle". This flattens the layers into a single filesystem.
- Run the container from the bundle
Deploy App Image to Digital Ocean
- Deploying App to Digital Ocean from Brandon Lehr using HTTPS-PORTAL in docker compose.
Step by Step Instructions
It is assumed that the Docker Desktop for Windows has been installed and the the runtime is created by .NET Core 3.0 or later.
- Install the Digital Ocean controller on windows. It is called doctl.exe.
- Build a production version of the code (ie set the configuration to Production with the Configuration Manager.)
- If running Visual Studio 2019 or later, build a