黑马程序员MybatisPlus/Docker相关内容

Day01

MP相关知识

1. mp配置类:

在这里插入图片描述

2.条件构造器:

在这里插入图片描述
具体的实现例子:
①QuerryWapper:
在这里插入图片描述
②LambdaQueryWrapper:
在这里插入图片描述

3.MP的自定义SQL

在这里插入图片描述

4.MP的Service层的实现

在这里插入图片描述

5.IService下的Lambda查询

原SQL语句的写法:
在这里插入图片描述
Lambda 查询语句的实现:
在这里插入图片描述

6.IService下的Lambda更新

在这里插入图片描述
lambdaUpdate的实现:
在这里插入图片描述

7.MP中批量增加的方法

在这里插入图片描述

8.MP中的逻辑删除方法

在这里插入图片描述
自动的去执行update的方法
在这里插入图片描述

9.MP中的分页插件

①:配置分页的配置类

在这里插入图片描述
②:MP分页使用的举例
在这里插入图片描述

10.MP中通用分页查询的实例

在这里插入图片描述
实现步骤:
①:通用分页结果:
在这里插入图片描述
②:controller层接口
在这里插入图片描述
③:具体实现类
s
在这里插入图片描述
或者这种形式:

@GetMapping("/page")
public Result pageQuery(int page,int pageSize,String name){//使用mp提供的分页插件
    //创建分页构造器,表示几页几条
    Page<Employee> pageInfo = new Page<>(page,pageSize);
    //通过条件构造类构造其他的过滤条件
    LambdaQueryWrapper<Employee> lambdaQueryWrapper = new LambdaQueryWrapper<>();
    //条件,前端发送过来的指定姓名,模糊匹配,且姓名非空
    lambdaQueryWrapper.like(!StringUtils.isEmpty(name),Employee::getName,name);
    //指定结果的降序
    lambdaQueryWrapper.orderByDesc(Employee::getCreateTime);
    //执行查询
    empService.page(pageInfo,lambdaQueryWrapper);

    //响应数据
    return Result.success(pageInfo);
}

Day02

Docker相关内容学习

1.docker命令解读

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.docker的常见命令

在这里插入图片描述

3.docker拉取练习

在这里插入图片描述
步骤:
①:docker pull nginx -------拉取nginx镜像
②:docker images ----------查看镜像列表
在这里插入图片描述
③:docker run -d --name nginx -p 80:80 nginx -------运行nginx容器
在这里插入图片描述
④:docker ps ------------查看启动的容器列表
在这里插入图片描述
⑤:docker stop nginx -----停止容器的运行
在这里插入图片描述
⑥: docker start nginx --启动容器
在这里插入图片描述
⑦:docker logs -f nginx --------实时查看nginx的日志
⑧:docker rm nginx —删除容器

4.数据卷挂载

在这里插入图片描述
补充:docker进入容器内。于进入一个正在运行的容器中并以交互方式执行命令。

docker exec -it nginx bash

数据卷相关内容:
在这里插入图片描述

5.数据卷相关案例(nginx)

在这里插入图片描述
可以在容器启动的时间直接指定好容器的挂载

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

查看现有的数据卷

docker volume ls

查看数据卷的详细信息

docker volume inspect 名称
eg:docker volume inspect html

在这里插入图片描述

6.数据卷相关案例(MySql)

在这里插入图片描述
补充:图片中的内容是MySQL的匿名挂载的路径:

在这里插入图片描述

在这里插入图片描述
挂载的位置:
在这里插入图片描述
在这里插入图片描述
注:执行命令前,需要先在linux中创建出对应的文件夹
在这里插入图片描述

查看启动中的容器

docker ps

关闭mysql对应的容器

docker rm -f mysql

启动对应的mysql并实现挂载的功能

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v /root/mysql/data:/var/lib/mysql \
  -v /root/mysql/init:/docker-entrypoint-initdb.d \
  -v /root/mysql/conf:/etc/mysql/conf.d \
  mysql

使用本机navicat进行连接即可

Day03

Dockerfile相关内容学习

1.自定义镜像

在这里插入图片描述
一个java项目的镜像的结构是这样的
在这里插入图片描述
Dockerfile相关的命令:
在这里插入图片描述

2.自定义镜像Demo

左边是:从linux系统开始一步一步去创建dockerfile文件。右边是直接创建出了jre的镜像,包含了前面红色部分的内容。
在这里插入图片描述

3.自定义镜像

在这里插入图片描述
练习:将黑马资料中的文件上传到root目录下
在这里插入图片描述
通过 docker load -i jkd.tar 来加载资料中提供的jkd的镜像
在这里插入图片描述
进入dockerfile所在的目录下执行

docker build -t docker-demo . 

在这里插入图片描述
通过命令查看构建的镜像

docker images

在这里插入图片描述
启动构建的docker镜像

docker run -d --name dd -p 8080:8080 docker-demo

在这里插入图片描述
查看对应的所有容器

docker ps

在这里插入图片描述
根据docker的name来加载对应的日志

docker logs -f dd

在这里插入图片描述
部署成功之后的访问路径
在这里插入图片描述
总结:
在这里插入图片描述

4.docker的网络

可以通过命令

eg:docker inspect mysql    //查看mysql容器的ip地址

默认情况下创建出的容器中ip是自动去分配的
在这里插入图片描述

网络相关的命令:
在这里插入图片描述
1.创建一个网络

docker network create heima 

2.将现在的mysq容器加入到heima这个网络中

docker network connect 网络名 容器名
-------docker network connect heima mysql 

3.在启动容器的时间直接将加入网络中去的命令,

docker run -d --name dd -p 8080:8080 --network heima docker-demo

在这里插入图片描述

5.后端项目的部署

①:打包黑马资料中黑马商城的项目,并放在linux中。
在这里插入图片描述
②:执行对应的dockerfile的命令

 docker build -t hmall .

③:加载对应的镜像为容器,并指定对应的网络

docker run -d --name hm -p 8080:8080 --network heima hmall

在这里插入图片描述
④:查看对应的日志即可

docker logs -f hm                                    //看到启动容器的日志

在这里插入图片描述
这就表示后端的包部署成功

6.前端项目的部署

需要重新去部署ngin相关的内容
①:删除nginx容器

docker rm -f nginx

②:重新加载nginx容器

docker run -d \
	--name nginx \
	-p 18080:18080 \
	-p 18081:18081 \
	-v /root/nginx/html:/usr/share/nginx/html \
	-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
	--network heima \
	nginx

在这里插入图片描述
③:部署成功,访问18080端口即可看到商城页面

7.DockerCompose的使用

在这里插入图片描述
对应关系:
在这里插入图片描述
上面的部署的详细信息:
在这里插入图片描述
在这里插入图片描述
上传对应的compose文件
在这里插入图片描述
DockerCompose相关的命令
在这里插入图片描述
相关操作:
补充:修改对应的nginx的配置
在这里插入图片描述

①:删除所有的容器

docker rm -f mysql nginx hm/

②:删除对应多余的镜像

docker rmi hmall docker-demo

③:执行对应的docker compose命令

docker compose up -d

在这里插入图片描述
完成DockerCompose的部署

### 如何在 Docker 中使用 `--graph` 参数指定 `/data/docker/lib/docker` 路径 当需要更改 Docker 的默认存储路径时,可以使用 `--graph` 或者更现代的方式 `data-root` 来完成这一操作。以下是具体方法: #### 方法一:通过命令行参数设置 如果希望临时测试新的存储路径而不影响现有配置,可以直接运行带有 `--graph` 参数的 Docker 守护进程。例如: ```bash sudo dockerd --graph=/data/docker/lib/docker -H tcp://0.0.0.0:2375 & ``` 这会在后台启动一个新的 Docker 守护进程,并将其数据存储于 `/data/docker/lib/docker` 目录下[^1]。 需要注意的是,在实际生产环境中不推荐这种方式,因为它可能与其他已有的 Docker 进程冲突。 --- #### 方法二:修改 `docker.service` 文件 对于长期生效的需求,可以通过编辑系统的 `docker.service` 配置文件实现永久变更。按照以下步骤执行: 1. 打开并编辑 `/lib/systemd/system/docker.service` 文件: ```bash sudo nano /lib/systemd/system/docker.service ``` 2. 修改或替换原有的 `ExecStart` 行为如下内容: ```ini ExecStart=/usr/bin/dockerd --graph=/data/docker/lib/docker -H fd:// --containerd=/run/containerd/containerd.sock ``` 3. 如果原文件中有其他选项,请保留它们并将 `--graph` 添加至最后部分。 4. 保存退出后重新加载 systemd 并重启 Docker 服务: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` 此时,Docker 将会读取位于 `/data/docker/lib/docker` 下的数据作为其工作区[^3]。 --- #### 方法三:利用 `daemon.json` (适用于较新版 Docker) 从 Docker 19.x 开始建议采用 JSON 格式的守护程序配置替代旧版 `--graph` 命令方式。此法更加简洁明了且易于维护。 1. 编辑或者新建 `/etc/docker/daemon.json` 文件: ```json { "data-root": "/data/docker/lib/docker" } ``` 2. 确认语法无误后同样需重载服务以及重启 Docker: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` 这种方法不仅功能强大还兼容未来更新版本中的特性改进[^2]。 --- #### 数据迁移注意事项 无论采取哪种方案之前都应考虑原有镜像和容器是否会受到影响。因此务必先停止所有正在运行的服务再做调整;另外还需手动复制现有的 `/var/lib/docker/*` 到目标位置以保持一致性[^4]: ```bash sudo service docker stop sudo rsync -aqxP /var/lib/docker/ /data/docker/lib/docker/ sudo service docker start ``` 确认完成后可再次验证当前状态是否正确指向预期地址: ```bash docker info | grep 'Docker Root Dir' ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值