I felt that I could cover the topic of Docker in 2020 to some extent, so I summarized it.
Docker official blog
Announcing the release of a preview version of Docker Desktop for Macs with M1 chips. Although it was a post at the end of the year, it ranked first, which shows the high degree of attention (although it may be arbitrary because it does not give a specific number of views). It seems that there were three major issues in dealing with it.
Of these, 1 and 2 have made great progress, and it seems that this preview version can be released. Regarding automated testing, he said that he was finally able to build a system in the first half of December in collaboration with a partner who has secured a sufficient number of hardware. The preview release is also likely to have a strong intent to get enthusiastic users to help with the missing debugging work. I think it is strong to be able to develop platform-independently. It's nice to be able to use the same image without being aware of the difference even if the instruction set architecture is different. (However, of course, images that are only compatible with amd64 can only be used with amd64. It is necessary to take measures such as building in an ARM native environment and making it available on multiple platforms with Buildx. I will.)
This is the first article of python-env-series that sets up an environment for developing Python web applications with Docker.
It describes how to containerize a service developed in Python. It explains the basic instructions of Dockerfile and how to start the container from the created image. Multi-stage builds are also mentioned as a slightly more advanced topic.
Main contents
The content of this series itself is organized, so it is recommended for those who want to move their hands and learn Docker. It seems that it can be used as it is as a hands-on material for some study session. It is better if you are familiar with Python, but the content is understandable even if you have never touched Python.
This is a Docker tutorial based on NGINX. This is also very organized and recommended for those who want to move their hands and learn Docker.
Main contents
I had been searching around for various cases of using NGINX as a reverse proxy, so I wish I could reach this article early. Besides how to use it as a container, it was very helpful to know what to write in the conf file to run it as a reverse proxy.
Learn how to deploy your app to a remote Docker host with the docker-compose command. The following three methods are introduced.
DOCKER_HOST =" ssh: // user @ remotehost "docker-compose up -d
The main part of this article is a description and sample of Docker Context support added in docker-compose 1.26.0-rc2. Roughly speaking, Docker Context is a function that allows you to switch the Docker host that sends requests. The feeling is close to the ability to specify a Git remote repository. By using this function, you can deploy and operate multi-container applications without switching hosts.
This is mainly an introduction to the features of VS Code's "Remote-Containers: Open Folder in Container". This function is quite amazing, and it launches the environment of a certain OS, language, and framework just by GUI operation. In addition to being used by the team introduced in the article, it seems to be useful when studying individually and "I want to use that language for a while, but it is troublesome to build a development environment". Anything in the microsoft/vscode-dev-containers repository can be selected and started as a container without any special settings.
This is an article about the pull rate limit for image pulls from Docker Hub. Explains the details of the restrictions and the reasons for reaching the restrictions. It also touches on the architecture of how image pulling is done to facilitate understanding. Above all, the following information was interesting.
Isn't it a specification that consumes one pull for an inquiry to check the remaining number of pulls?
This article was an announcement of WSL2 support as an experiment, but as mentioned above, it was incorporated into the Stable version as of May 2020. Documents such as the installation procedure are also prepared, so it seems that there is not much need to refer to this article now. As for Japanese information, two cases of running Docker Desktop on Windows using WSL2 were posted on the Qiita Docker Advent Calendar in 2020. Both of them are illustrated and explained in detail, so I used them as a reference.
This is the sequel to the second article. Part 1 shows how to containerize a Python web application, and Part 2 shows how to connect an application to other components.
Main contents
In addition, Part 3 which is the last inning explains how to set up remote debugging from VS Code for the application server set up with Flask.
This article introduces BuildKit, a tool for building Docker images. BuildKit does not need to be newly installed, and if it is Docker 18.09 or later, it will be included when you install Docker. However, it is off by default, so you need to turn it on by one of the following methods. (As an exception, Docker Desktop has BuildKit set as the default builder since 2.4.0.0.)
■ If you want to turn it on only in a specific build Set the environment variable DOCKER_BUILDKIT when running docker build
$ DOCKER_BUILDKIT=1 docker build -t myimage .
■ If you want to keep it on all the time
Add the setting to enable BuildKit to etc/docker/daemon.json
daemon.json
{
"features": {
"buildkit": true
}
}
The following are examples of what can be achieved by activating BuildKit.
This story is deep in the middle, and it seems that the nature of the product called Docker and the business policy of Docker are in the background. Docker has an aspect as a development tool that supports the construction and standardization of the environment, and an aspect as an infrastructure platform for operating applications. Docker has turned to strengthening its aspect as a development tool. An example of this is Sale of Docker EE to Mirantis announced in November 2019, which is an announcement about the Compose Specification community. It's a move to reduce the resources devoted to the infrastructure business and focus on Docker as a development tool. There seems to be an aim to increase Docker's presence in the genre of developing multi-container applications. In Press Releases after 2020, the words "Developers" and "Development" appear frequently, which shows the seriousness of their selection and concentration.
A little over half a year after the announcement of the Compose Specification community establishment, both Docker Compose's CLI for AWS and Microsoft Azure's CLI have become GA. Both are the vendors that were named as the main partners in this announcement. It can be said that the community has achieved some success by setting standards and releasing tools that comply with them in a transparent situation.
I think that the events and changes that happened around Docker in 2020 have been suppressed to some extent. I wrote it with a body that I fully understood, but there were many things that happened. I would appreciate it if you could point out any mistakes. Although I intended to write it briefly, it became a very long article, but I am glad that I learned a lot.
Thank you for reading this far. Have a nice year.