What is Docker? What purpose is it used for?

Introduction

When I'm learning programming, I often hear Docker.

Docker seems to be an essential skill for job hunting. I hope I can output little by little while studying what I can do.

What is Docker

--Platform for creating, running and managing container-type virtual environments --You can use Docker software to quickly start a container and run various applications. --You can easily reproduce the same virtual environment in different environments (PCs and servers) --Docker software itself is written in Go language

-A container is a kind of virtual environment. You can create a container on your PC or server and run programs in that container.

For example

If you want to run a Python application, you can use a container with Python installed to instantly run the Python application and see how it works. A feature of container-type virtual environments is that various applications can be executed quickly by starting a container that suits the purpose.

If you want to reproduce the same environment on different PCs and servers, you can easily build a similar environment by sharing the docker configuration file. This comes in handy when setting up the same environment among members of the development team.

Also, the docker software itself is written in Go language. It may not be something that you usually care about, but if you get used to the Go language a little, such as using the Go template format when specifying the output format of the docker command, it may be easier to use. think.

What is Docker used for?

--Application development environment --Verification environment, production environment --Construction of Web server, database server, etc. --Execution environment for various programming languages --Other various middleware environment construction

Application development environment

The application development environment is a case used when running an application under development on a developer's personal computer. Web application projects are so widespread that they may be used by most companies. First of all, when you enter a project, there are quite a lot of cases where you build a development environment with docker on your PC, so I think that developers have to learn the basic usage.

Verification environment, production environment

In the verification environment and production environment, docker is also used when running applications created by each developer on the server. In application development, a development environment is prepared on the developer's PC to develop the application. When the application is completed, combine the environment and the application into one block in the form of a docker image. Upload it to a server that manages images called the docker repository. By downloading the image on another server and starting the container from the image, you can basically start the same environment on the server as when you developed it. One of the advantages of docker is that you can quickly perform the flow from this development to running on the server. A verification server is generally a server for checking the operation in an environment equivalent to the production before the production release, and a production server is a server that is actually accessed by the user. In general web application development, it seems that development proceeds by repeating a series of steps such as developing on a development PC in this way, checking the operation on the verification server, and releasing it to the production server if there is no problem. is.

Construction of Web server, database server, etc.

Nginx, Apache for the web server. You can easily start up commonly used database servers such as MySQL and PostgreSQL by using docker. There is a docker image that is officially published to create these servers as containers, and you can easily launch a container for servers by using this image.

--Execution environment for various programming languages. Other various middleware environment construction

Similarly, docker images are widely published for programming language execution environments and other middleware, so it is possible to launch various containers using these images. You can check what kind of image is released on the site operated by docker, which is mainly called docker hub.

in conclusion

It was a rough explanation. I will study more and more about Docker and publish articles.

If you have any incorrect explanations, please let us know in the comments.

Recommended Posts

What is Docker? What purpose is it used for?
What is docker run -it?
[Ruby] What is `!!` used for?
What is Docker?
What is Docker
What is Docker
What is the constructor for?
What is it? ~ 3 types of "no" ~
[For beginners] Ruby is said to be ruby, but what about it?
[For super super beginners] What is object orientation?
What is the Facade pattern useful for?
What is Docker? I tried to summarize
What is Cubby
What is null? ]
What is java
What is Keycloak
What is maven?
What is self
What is Jenkins
What is ArgumentMatcher?
What is IM-Juggling?
What is SLF4J?
What is Facade? ??
What is Java <>?
What is the volatile modifier for Java variables?
What is Gradle?
What is POJO
What is Java
What is centOS
What is RubyGem?
What is programming?
Is it OutOfMemoryError?
What is before_action?
What is Byte?
What is Tomcat
Is it faster if the docker bind mount is readonly?
What is Maven Assembly?
What is `docker-compose up`?
What is a constructor?
What is vue cli
What is an interface?
What is Ruby's self?
What is hard coding?
What is a stream
What is Ruby's attr_accessor?
What is Java Encapsulation?
What is permission denied?
What is instance control?
What is an initializer?
What is an operator?
What is object orientation?
Docker Frequently used commands
What is Guava's @VisibleForTesting?
What is MVC model?
What is an annotation?
What is Java technology?
What is Java API-java
What is @ (instance variable)?
What is Gradle's Artifact?
What is JPA Auditing?
[Swift] What is dismiss?