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
posted @ 2024-08-31 23:09  ForHHeart  阅读(3)  评论(0编辑  收藏  举报