Difference between revisions of "Docker"

From MgmtWiki
Jump to: navigation, search
(References)
(References)
Line 35: Line 35:
 
* [https://docs.docker.com/get-started/orchestration/ Docker docs], but note that the Docker team only deals with the low level formats.
 
* [https://docs.docker.com/get-started/orchestration/ Docker docs], but note that the Docker team only deals with the low level formats.
 
* [https://www.ianlewis.org/en/container-runtimes-part-1-introduction-container-r a four-part series on Container Runtimes] describes low-level versus high-level runtimes well.
 
* [https://www.ianlewis.org/en/container-runtimes-part-1-introduction-container-r a four-part series on Container Runtimes] describes low-level versus high-level runtimes well.
 
+
* [https://espressocoder.com/2019/06/11/getting-started-with-docker-in-visual-studio-2019/ Getting Started with Docker in Visual Studio 2019]
  
 
[[Category: Glossary]]
 
[[Category: Glossary]]
 
[[Category: Standard]]
 
[[Category: Standard]]
 
[[Category: Best Practice]]
 
[[Category: Best Practice]]

Revision as of 16:58, 14 November 2020

Full Title or Meme

Docker is a system for building, deploying and running complex images of a program with its runtime.

Context

  • 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.

Documentation

Docker was released in 2013 and solved many of the problems that developers had running containers end-to-end. It had all these things:

  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

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

Orchestration

The portability and reproducibility of a containerized process mean we have an opportunity to move and scale our containerized applications across clouds and datacenters. Containers effectively guarantee that those applications run the same way anywhere, allowing us to quickly and easily take advantage of all these environments. Furthermore, as we scale our applications up, we’ll want some tooling to help automate the maintenance of those applications, able to replace failed containers automatically, and manage the rollout of updates and reconfigurations of those containers during their lifecycle.

Tools to manage, scale, and maintain containerized applications are called orchestrators, and the most common examples of these are Kubernetes and Docker Swarm. Development environment deployments of both of these orchestrators are provided by Docker Desktop.

Practices

This section is specific to Visual Studio 2019 and later.

  1. Start the project as a docker project, or go the startup project and Add->Docker support.
  2. Add orchestration in the same project by Add->Container Orchestrator Support. This will build a new folder under the VS solution folder called "docker-compose".

References