Docker
基本原理和概念
Docker是使用Client-Server架构模式,Docker CLient和Docker Daemon之间通过Socket或者RESTful API进行通信。Docker Daemon就是服务端的守护进程,他负责管理Docker的各种资源。Docker Client负责向Docker Daemon发送请求,Docker Daemon接收到请求之后进行处理,然后将结果返回给Docker Client。这里的Docker Daemon是一个后台进程,用来接收并处理来自Docker客户端的请求,然后将结果返回给客户端。所以我们在终端中输入的各种Docker命令,实际上都是通过Docker客户端发送给Docker Daemon的,然后Docker Deamon再进行处理,最后再将结果返回给客户端,然后就可以在终端中看到执行结果了。

镜像和容器的关系就像是Java中的类和实例。

容器化containerization和Dockerfile

FROM node:18-alpine
WORKDIR /app
COPY..
RUN npm install
CMD node src/index.js
EXPOSE 3000
Dockerfile是一个文本文件,里面包含了一条条的指令,用来告诉Docker如何来构建镜像,这个镜像中包括了我们应用程序执行的所以命令,也就是我们刚刚提到的各种依赖、配置环境和运行应用程序所需要的所有内容。
在这个文件中写入构建镜像所需要的各种指令之后,Docker就会根据这个Dockerfile文件来构建一个镜像,有了镜像之后,我们就可以使用这个镜像来创建容器,然后在容器中运行应用程序。
编写好Dockerfile之后
docker bulid -t <docker_image> . # .表示当前目录
docker images
docker run <docker_image>
使用Docker Hub上的镜像
docker pull <docker_image>
docker run <docker_image>
Dockerdesktop与逻辑卷
逻辑卷可持久化容器
Docker Compose
- 是Docker官方开源的项目,用于定义和运行多容器Docker应用程序的工具
- 使用Yaml文件来配置应用程序的服务
- 一条命令即可创建并启动所有服务

Docker Compose用于解决这些服务之间的关联关系,它通过一个单独的docker-compose.yaml的配置文件,来将这一组互相关联的容器组合在一起,形成一个项目
redis:
image: redis
db:
image: mysql
frontend:
image: vue-app
ports:
- 3000:3000
links:
- redis
backend:
image: springboot-app
......
docker compose up
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~