Docker: Difference between revisions

From IDESG Wiki
Jump to navigation Jump to search
Line 44: Line 44:
# Test that everything works by typing:  .\doctl.exe account get
# Test that everything works by typing:  .\doctl.exe account get
# For first time use, [https://www.digitalocean.com/docs/container-registry/quickstart/ Create a Container Registry].
# For first time use, [https://www.digitalocean.com/docs/container-registry/quickstart/ Create a Container Registry].
# Optionally check the account: .\doctl.exe account get
The following builds the container directly in the droplet
#
The use of registry complicates the flow and is not recommended for initial testing with a single droplet.
# Ensure the workstation is signed into Digital ocean: ./doctl.exe registry login
# Ensure the workstation is signed into Digital ocean: ./doctl.exe registry login
# Optionally check the account: .\doctl.exe account get
# Tag the container to be pushed: docker tag registrytest:dev registry.digitalocean.com/tomjones/tomjones
# Tag the container to be pushed: docker tag registrytest:dev registry.digitalocean.com/tomjones/tomjones
# Push contain from workstation to cloud: docker push registry.digitalocean.com/tomjones/tomjones
# Push contain from workstation to cloud: docker push registry.digitalocean.com/tomjones/tomjones

Revision as of 21:14, 16 November 2020

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:

  1. A container image format
  2. A method for building container images (Dockerfile/docker build)
  3. A way to manage container images (docker images, docker rm , etc.)
  4. A way to manage instances of containers (docker ps, docker rm , etc.)
  5. A way to share container images (docker push/pull)
  6. 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.

When you run a Docker container, these are the steps Docker actually goes through:

  1. Download the image
  2. Unpack the image into a "bundle". This flattens the layers into a single filesystem.
  3. Run the container from the bundle

Deploy App Image to Digital Ocean

Custom Images on Droplets

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.

  1. Build a production version of the code (ie set the configuration to Production with the Configuration Manager.)
  2. If running Visual Studio 2019 or later, publish a
  3. Install the Digital Ocean controller on windows. It is called doctl.exe.
  4. Create a DigitalOcean API token for your account with read and write access from the Applications & API page in the control panel. Save the token string in a safe place on your workstation.
  5. On the workstation (usually in powershell) you will enter the token after you type: .\doctl.exe auth init --context <NAME_OF_CONTAINER>
  6. Test that everything works by typing: .\doctl.exe account get
  7. For first time use, Create a Container Registry.
  8. Optionally check the account: .\doctl.exe account get

The following builds the container directly in the droplet

The use of registry complicates the flow and is not recommended for initial testing with a single droplet.

  1. Ensure the workstation is signed into Digital ocean: ./doctl.exe registry login
  2. Tag the container to be pushed: docker tag registrytest:dev registry.digitalocean.com/tomjones/tomjones
  3. Push contain from workstation to cloud: docker push registry.digitalocean.com/tomjones/tomjones

References