Development process with Docker

Question:

I understand the basic concept of Docker and its advantages but I have doubts about how it is used in the development process, these doubts are:

  • Technically the Docker generates "machine snapshot" so all developers must pull from the same hub so there is no difference in the correct container?
  • Is this container on every developer's machine on the team or on an external server?
  • Do I code on my machine and "deploy" to the container only after development?
  • Is the approval environment still being used after Docker?

Answer:

One answer at a time:

Technically the Docker generates "machine snapshot" so all developers must pull from the same hub so there is no difference in the correct container?

Exactly. This snapshot of the machine which is called a container . In it container has all the necessary environment to run your service.

Is this container on every developer's machine on the team or on an external server?

This varies a lot in the workflow of each team. The container is usually the final product of the development process, in the sense that it has all the capacity to run the service with just one command , and it is also that it goes into production.

Do I code on my machine and "deploy" to the container only after development?

Yes, what you are looking for is Automated Builds , which is a Dockerhub feature that allows you to align a Github repository with a container, making a process very similar to a continuous integration, with each commit Dockerhub will try to do a docker build , with the Dockerfile present at the root of the repository.

Is the approval environment still being used after Docker?

One of the advantages of Docker is precisely that it can run the approval environment on your machine, or easily recover it in case something goes wrong. However, this does not exclude the need to have an approval environment, it is always important to test and validate the services and if the containers are running accordingly.

Your doubt is clearly not Docker's, but Devops' . It also encompasses Docker and other concepts that make use of Docker, such as Continuous Integration and Continuous Delivery.

Devops allowed us to have an automated and more agile delivery process. I recommend taking a look at this concept as it encompasses the use of Docker in production. Some interesting links:

Scroll to Top