基本原理和概念
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
标签:容器,Daemon,应用程序,镜像,Docker,docker
From: https://www.cnblogs.com/forhheart/p/18389787