The difference between docker and virtual machines: 1. Docker starts quickly at the second level, while virtual machines usually take several minutes to start; 2. Different performance losses, docker requires fewer resources; 3. Different isolation , docker belongs to the isolation between processes, and the isolation is weak, while virtual machines can achieve system-level isolation.
The operating environment of this tutorial: linux7.3 system, docker version 19.03, Dell G3 computer.
What is the difference between docker and virtual machine
Virtual machine: The virtual machine virtualizes the network card, cpu, and memory through the Hypervisor (virtual machine management system, common ones include VMWare workstation, VirtualBox) Wait for the virtual hardware and then build a virtual machine on it. Each virtual machine is an independent operating system and has its own system kernel.
Containers: Containers use namespace to isolate file systems, processes, networks, devices and other resources, and use cgroups to limit permissions and CPU resources. Ultimately, containers do not affect each other and containers cannot affect the host. .
Advantages of docker
Docker programs running on containers directly use the hardware resources of the host machine, so in terms of CPU, memory, and utilization, , Docker will have greater advantages in efficiency
Docker directly uses the system kernel of the host, avoiding the system boot time required when the virtual machine starts and the resource consumption of the operating system running. Using Docker can Starting a large number of containers within a few seconds is something that a virtual machine cannot do. The advantages of quick startup and low resource consumption make Docker a good application scenario in the automatic operation and maintenance system of elastic cloud platforms.
The startup time of the container is seconds, which saves a lot of time in development, testing, and deployment. Another very critical point is that Docker can be deployed and expanded efficiently. Docker containers can run on almost any platform, including virtual machines, physical machines, public clouds, private clouds, personal computers, servers, etc. This compatibility , which allows users to directly migrate an application from one platform to another.
However, the security of virtual machines is better than that of containers. Docker shares resources such as the kernel and file system with the host, and is more likely to affect other containers and hosts.
Difference
##1. Different startup speed
docker starts quickly within seconds. Virtual machines usually take several minutes to start.2. Different performance losses
Docker requires fewer resources. Docker virtualizes at the operating system level. Docker containers interact with the kernel, and there is almost no performance loss. Performance is better than virtualization through the hypervisor layer and kernel layer.3. Different system utilization rates
docker is more lightweight. The docker architecture can share a kernel and a shared application library, occupying very little memory. In the same hardware environment, Docker runs far more images than virtual machines, and the system utilization is very high.4. Different isolation properties
Compared with virtual machines, docker isolation is weaker. Docker belongs to the isolation between processes, and virtual machines can achieve system-level isolation. .5. Different security
Docker’s security is also weaker. The tenant root of Docker is the same as the host root. Once the user in the container is upgraded from ordinary user rights to root rights, it directly has the root rights of the host and can perform unlimited operations. The virtual machine tenant root permissions are separated from the host's root virtual machine permissions, and the virtual machines utilize ring-1 hardware isolation technology such as Intel's VT-d and VT-x. This isolation technology can prevent virtual machines from breaking through and interacting with each other. interactions, and containers do not yet have any form of hardware isolation, which makes containers vulnerable to attacks.6. Different manageability
Docker’s centralized management tool is not yet mature. Various virtualization technologies have mature management tools. For example, VMware vCenter provides complete virtual machine management capabilities.7. Availability and recoverability are different
docker’s high-availability support for business is achieved through rapid redeployment. Virtualization has mature guarantee mechanisms such as load balancing, high availability, fault tolerance, migration and data protection that have been tested in production practice. VMware can promise 99.999% high availability of virtual machines to ensure business continuity.8. Creation and deletion speeds are different
Virtualization creation takes minutes, while Docker container creation takes seconds. The rapid iteration of Docker determines whether It can save a lot of time in development, testing, and deployment.9. Delivery and deployment speeds are different
Virtual machines can achieve consistent environment delivery through images, but image distribution cannot be systematic; Docker records this in the Dockerfile The container building process can achieve rapid distribution and rapid deployment in the cluster; Recommended learning: "docker video tutorial"
The above is the detailed content of What is the difference between docker and virtual machine. For more information, please follow other related articles on the PHP Chinese website!

Docker is important on Linux because Linux is its native platform that provides rich tools and community support. 1. Install Docker: Use sudoapt-getupdate and sudoapt-getinstalldocker-cedocker-ce-clicotainerd.io. 2. Create and manage containers: Use dockerrun commands, such as dockerrun-d--namemynginx-p80:80nginx. 3. Write Dockerfile: Optimize the image size and use multi-stage construction. 4. Optimization and debugging: Use dockerlogs and dockerex

Docker is a containerization tool, and Kubernetes is a container orchestration tool. 1. Docker packages applications and their dependencies into containers that can run in any Docker-enabled environment. 2. Kubernetes manages these containers, implementing automated deployment, scaling and management, and making applications run efficiently.

The purpose of Docker is to simplify application deployment and ensure that applications run consistently in different environments through containerization technology. 1) Docker solves the environmental differences problem by packaging applications and dependencies into containers. 2) Create images using Dockerfile to ensure that the application runs consistently anywhere. 3) Docker's working principle is based on images and containers, and uses the namespace and control groups of the Linux kernel to achieve isolation and resource management. 4) The basic usage includes pulling and running images from DockerHub, and the advanced usage involves managing multi-container applications using DockerCompose. 5) Common errors such as image building failure and container failure to start, you can debug through logs and network configuration. 6) Performance optimization construction

The methods of installing and using Docker on Ubuntu, CentOS, and Debian are different. 1) Ubuntu: Use the apt package manager, the command is sudoapt-getupdate&&sudoapt-getinstalldocker.io. 2) CentOS: Use the yum package manager and you need to add the Docker repository. The command is sudoyumininstall-yyum-utils&&sudoyum-config-manager--add-repohttps://download.docker.com/lin

Using Docker on Linux can improve development efficiency and simplify application deployment. 1) Pull Ubuntu image: dockerpullubuntu. 2) Run Ubuntu container: dockerrun-itubuntu/bin/bash. 3) Create Dockerfile containing nginx: FROMubuntu;RUNapt-getupdate&&apt-getinstall-ynginx;EXPOSE80. 4) Build the image: dockerbuild-tmy-nginx. 5) Run container: dockerrun-d-p8080:80

Docker simplifies application deployment and management on Linux. 1) Docker is a containerized platform that packages applications and their dependencies into lightweight and portable containers. 2) On Linux, Docker uses cgroups and namespaces to implement container isolation and resource management. 3) Basic usages include pulling images and running containers. Advanced usages such as DockerCompose can define multi-container applications. 4) Debug commonly used dockerlogs and dockerexec commands. 5) Performance optimization can reduce the image size through multi-stage construction, and keeping the Dockerfile simple is the best practice.

Docker is a Linux container technology-based tool used to package, distribute and run applications to improve application portability and scalability. 1) Dockerbuild and dockerrun commands can be used to build and run Docker containers. 2) DockerCompose is used to define and run multi-container Docker applications to simplify microservice management. 3) Using multi-stage construction can optimize the image size and improve the application startup speed. 4) Viewing container logs is an effective way to debug container problems.

Docker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool