docker
docker
docker是容器的一种实现方式,容器也是一种虚拟化技术的实现。
虚拟机
虚拟机是模拟了整个操作系统,内部包含了硬盘、操作系统(内核、图形化界面等等),而我们往往可能只需要部署具体某个服务,其他的服务会占用大量资源,这也是虚拟机启动慢以及同一台物理机可部署的虚拟机数量有限的一个很大原因。
容器
容器也是一个独立的运行环境,可以独立运行我们的服务,与虚拟机不同的是,它不需要运行一个完整的操作系统,而使用宿主机的操作系统,所以启动速度快。同时因为需要的资源少,所以同一台物理机上可以运行更多的容器。
docker的基本原理和概念
images 镜像
一个用来创建容器(container)实例的只读模板
container 容器
可运行的docker实例,提供了一个可移植的独立环境,可以在其中运行程序
Registry 仓库
用来存储docker镜像的地方,用来集中存储和管理docker镜像,从而进一步实现共享和复用
最流行的仓库:docker hub
容器化
将应用程序打包成容器,在容器中运行应用程序
- 创建一个Dockerfile,声明Docker构建应用程序镜像所需要的步骤和配置;
- 使用Dockerfile构建镜像
- 使用镜像创建和运行容器
实践
运行一个js文件的步骤
使用docker完成:
-
创建一个Dockerfile
- vscode、cursor等ide中建议安装docker插件
-
# 先引入基础镜像 FROM node:20-alpine # 将文件复制到docker的运行路径下 COPY index.js /index.js # 执行命令 CMD ["node", "index.js"]
-
执行命令,生成镜像
- docker build -t hello-docker .
- 镜像会存储在docker的指定目录下
- 我们可以使用
docker image ls
进行查看 -
docker run hello-docker
一个在线运行docker的网站
https://labs.play-with-docker.com/
volumes 逻辑卷
docker容器中用于存储数据
docker容器的特点:不会持久化存储数据,我们创建容器时,通常以一个干净的文件系统开始,容器启动后,我们可以在其中创建文件、修改文件,容器停止后,容器中所有数据都会丢失掉。当我们想要持久化数据时,volumes的作用就显现了。
作用:将会容器中的目录或指定路径映射到宿主机的某一个目录或者位置上,从而将数据保存到宿主机的磁盘上,进而实现数据持久化
Docker Compose
- 用于定义和运行多容器Docker应用程序的工具
- 使用yaml文件来配置应用程序的服务
- 一条命令即可创建并启动所有服务
docker compose up
附上常用指令
推荐博主:YouTube:GeekHour
评论
其他文章