Docker Zero To Hero Bangla Course (Module-1- Getting Started with Docker)
Docker is a platform that allows developers to package, distribute, and manage applications within containers. These containers encapsulate everything an application needs to run, including libraries, dependencies, and runtime environments. Docker utilizes operating system-level virtualization to provide lightweight and efficient isolation of application resources.
Docker Installation in Ubuntu
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl enable docker
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker --version
Repo Link: https://github.com/shawon100/python_flask_docker
Clone Repo: git clone https://github.com/shawon100/python_flask_docker
Go to python_flask_docker folder and Build the Docker Image
docker build -t pythonflaskdocker .
Run the container
docker run -d -p 7000:5000 --name pythonflaskcontainer pythonflaskdocker
Open your browser: http://localhost:7000
Logs Checking Command in Docker
docker logs -f pythonflaskcontainer
Stop Docker Container
docker stop pythonflaskcontainer
Start Docker Container
docker start pythonflaskcontainer
Remove Docker Container
docker rm pythonflaskcontainer
Remove Docker Images
docker rmi pythonflaskdocker
Video tutorial (Language- Bangla)
Advantages of Docker:
Portability: Docker containers are highly portable and can run on any machine that has the Docker runtime installed, regardless of the underlying operating system. This eliminates the "it works on my machine" problem and ensures consistent behavior across different environments.
Consistency: With Docker, developers can define the environment and dependencies required for their applications in a Dockerfile. This ensures consistency between development, testing, and production environments, reducing the likelihood of runtime errors due to environmental differences.
Isolation: Docker containers provide process-level isolation, enabling applications to run independently of one another on the same host. This isolation enhances security by minimizing the impact of any vulnerabilities or issues within one container on others running on the same system.
Resource Efficiency: Docker containers share the host system's kernel, resulting in lower overhead compared to traditional virtual machines. This allows for higher resource utilization and enables running more containers on the same hardware, leading to better resource efficiency.
Rapid Deployment: Docker enables rapid deployment of applications by packaging them into lightweight, portable containers. Developers can quickly build, deploy, and scale applications using Docker's streamlined workflows and tools.
Version Control and Rollback: Docker images are version-controlled, allowing developers to track changes and roll back to previous versions if needed. This facilitates collaboration among team members and ensures reproducibility of builds across different environments.
Microservices Architecture: Docker is well-suited for microservices architecture, where applications are decomposed into smaller, independently deployable services. Each microservice can run in its own container, making it easier to develop, deploy, and scale complex distributed systems.
Ecosystem and Community Support: Docker has a vibrant ecosystem and a large community of users and contributors. This ecosystem includes a wide range of tools, plugins, and integrations that extend Docker's capabilities and address various use cases, making it a versatile and flexible platform for building and deploying applications.
Overall, Docker simplifies the process of developing, shipping, and running applications, making it an indispensable tool for modern software development and deployment workflows.
0 comments:
Post a Comment