Difference between revisions of "Docker"
Adelo Vieira (talk | contribs) (→Docker basics) |
Adelo Vieira (talk | contribs) |
||
Line 6: | Line 6: | ||
Docker is a popular open-source platform for building, shipping, and running applications in containers. Containers are lightweight and portable environments that allow you to run applications and services with their dependencies isolated from the underlying host system. | Docker is a popular open-source platform for building, shipping, and running applications in containers. Containers are lightweight and portable environments that allow you to run applications and services with their dependencies isolated from the underlying host system. | ||
+ | |||
+ | '''Docker images''' are static snapshots or templates of a specific environment that are used to create and run Docker containers. A '''Docker image''' is a lightweight, standalone, and read-only package that contains everything needed to run a piece of software, including the code, runtime, libraries, environment variables, and system tools. It is a snapshot or template of a specific environment that can be used to create and run containers. A '''Docker container''' is a running instance of an image. | ||
Using Docker, developers can create containerized applications, package them with all the necessary dependencies, and ship them as a single unit that can be deployed on any system that supports Docker. Docker also provides a way to manage containerized applications at scale, with features such as container orchestration, automated builds, and version control. | Using Docker, developers can create containerized applications, package them with all the necessary dependencies, and ship them as a single unit that can be deployed on any system that supports Docker. Docker also provides a way to manage containerized applications at scale, with features such as container orchestration, automated builds, and version control. | ||
Line 33: | Line 35: | ||
<br /> | <br /> | ||
==Docker basics== | ==Docker basics== | ||
− | |||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 44: | Line 44: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
docker pull postgres | docker pull postgres | ||
+ | docker pull mongo | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 50: | Line 51: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
docker run postgres | docker run postgres | ||
+ | docker run mongo | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 13:23, 2 June 2023
Docker hub: https://hub.docker.com/
Docker is a popular open-source platform for building, shipping, and running applications in containers. Containers are lightweight and portable environments that allow you to run applications and services with their dependencies isolated from the underlying host system.
Docker images are static snapshots or templates of a specific environment that are used to create and run Docker containers. A Docker image is a lightweight, standalone, and read-only package that contains everything needed to run a piece of software, including the code, runtime, libraries, environment variables, and system tools. It is a snapshot or template of a specific environment that can be used to create and run containers. A Docker container is a running instance of an image.
Using Docker, developers can create containerized applications, package them with all the necessary dependencies, and ship them as a single unit that can be deployed on any system that supports Docker. Docker also provides a way to manage containerized applications at scale, with features such as container orchestration, automated builds, and version control.
Some of the benefits of using Docker include improved application portability, faster development cycles, and better resource utilization. With Docker, developers can focus on building and testing applications, while operations teams can easily deploy and manage them across different environments and infrastructure. [ChatGPT]
Installation
Last time I installed Docker and Docker Compose, I follwed ChatGPT and everything was perfect!
The official documentation to install it in Ubuntu is here: https://docs.docker.com/engine/install/ubuntu/
Why use Docker
- Capture all dependencies as code:
- Python requerements
- OS dependencies.
- Consistent dev and prod environment: You can use the same image for development and production. So you eliminate all the issues that can arrive when changing to another environment in production.
- Easier collaboration: When you share your code with other developers you can be sure it will work. You eliminate all dependencies issues in another developer's machines.
- Different version of Python / Different version of databases / Different version of SDK.
Docker basics
docker --version
Download Docker images from https://hub.docker.com/
docker pull postgres
docker pull mongo
Create a new Docker container
docker run postgres
docker run mongo
Show all the containers in our machine:
docker ps
docker ps -a
We should be able to see the Postgres container running.
Stop/Start a container:
docker stop INSERT_CONTAINER_ID_HERE
docker start c6f7dfc1a4c8
Please note that the run command is used to create a new Docker container while the start command is used to run an existing container.
Remove a container:
docker rm c6f7dfc1a4c8
Please note that before you can remove a Docker container, you must stop it.
Remove a Docker image:
docker rmi INSERT_IMAGE_ID_HERE
Please note that before you can remove a Docker image, you must stop and remove all its associated containers.