springcloud 黑马商城微服务学习-docker部分

第一天 docker快速入门+docker基础(上)

1.创建linux环境:

Linux环境搭建 - 飞书云文档   按照这篇创建完成

2.创建docker环境

1.已解决:Cannot find a valid baseurl for repo: base/7/x86_64-优快云博客

初步推测是因为centos官方源我访问不到要换成aliyun baseurl  更换后yum-utils如下

看起来没有那么难 真有报错那也一次一次地尝试总能好  总要完成的东西能试的方法一定要都试试

配置镜像加速   因为docker要下很多东西 结果如下:

并重载daemon和restart docker进程

更改docker daemon.json中的配置  安装部署虚拟机mysql后   本地跨ip连接成功

解决docker无法拉取镜像源,报错Unable to find image ‘mysql:latest‘ locally问题_unable to find image 'mysql:latest' locally docker-优快云博客

docker相当于把压缩包或者msi 安装后生成的全量依赖  给下载到虚拟机上了  所以docker 叫“开箱即用” 这也就是docker镜像

2.隔离的容器 指的屏蔽底层差异  部署产生的过程中 在docker套公式就能部署很多  底层差异被docker消除 无需在意 docker ps可以查看进程

3.docker 命令多个参数含义

关于-e参数的话  每个应用创造的实例镜像需要初始化的参数不一样  所以别的app有可能 -e是别的键值对    这里端口映射理解成“容易有各自的假ip   fakeip1:3306,fakeip2:3306 .......   这些同时映射到了docker执行机   为了让操作docker时端口不冲突ip1,.....ipn映射了n个端口  操作这n个执行机端口来操作这n个容器同一种镜像服务

4.docker基础命令

docker命令理解记忆图如上图 docker run 重新创建容器并启动配置线程   docker start才是启动进程  所以恢复功能而非多进程 要用docker start

4.1命令1

因为每个容器存放着独立进程 因此想查容器(进程用docker ps)  同样的如果进程被stop了 那进程消失   对应的容器直接ps也查不到了  就要ps- a 查看所有停止和运行的容器

docker logs 前面起的容器名字   -f为阻塞式查询   

进入容器那台虚拟机

docker  rm 删容器  docker rmi 删镜像   运行中的进程  对应的容器 只能xxx -f强制删除

4.2 命令别名  这点和cadence 很像   向cshrc环境里变量面写入别名使他执行更复杂的命令   如果不加这个,就会相当于执行某个陌生命令  cadence写过很多遍了 这个跳过

5.挂载

5.1数据卷挂载

由于docker 为了节省性能且适配较多应用  容器内部功能很少此时想要更改容器运行参数 就要调整公共的宿主机参数 来映射容器参数  更改容器进程运行状态

第二天 docker基础下

1.如上图修改了 数据卷  发现进程的配置自动被修改了  因为挂在是同一物理内存空间对应的不同逻辑空间

2,docker volume inspect  查看数据卷详情

        docker inspect 查看容器详情

msql  docker运行时没有指定挂载位置 可以这样docker ps -a  查看容器名字  然后docker inspect name 即可查看挂载情况  一般来说没-v指定会产生匿名卷

同样的方式可以实现宿主机目录与容器目录的挂载

3.mobaxtrem 勾选① 可以实时展示当前目录结构

4。这里目录映射  地run了多个mysql  这样的话可以看出来    虚拟机对于容器的文件或者数据卷映射可以是一对一  也可以是一对多

5.指定目录挂载是为了数据在虚拟机持久保存  否则容易找不到

关于部署具体mysql命令:

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

关于 端口占用而错误生成了 不想要的容器清空他们要用到

Docker 停止及删除容器和镜像(单个和所有)-优快云博客所说的

6部署一个java应用通常需要下述四步

镜像形成中每一步都会产生的依赖会产生压缩包  这么多压缩包集成在一起就变成了镜像

7 那么批量化引入依赖  实现环境配置 并以docker方式构建出当前环境可运行镜像的就是dockerfile :

Dockerfile 的工作方式​​本质上就是“按步骤执行指令”​​,和批处理文件(如 .sh/.bat)的逻辑高度相似:

每一行指令(FROM/RUN/COPY/CMD...)都会被 Docker 引擎​​按顺序解析并执行​​,最终生成一个包含所有依赖和配置的镜像。

这个过程和写一个“安装依赖→复制文件→启动服务”的批处理脚本(比如 install.sh)完全一样,只是 Dockerfile 的产物(镜像)是​​标准化的、可移植的运行环境​​,而批处理脚本的产物通常是​​本地环境的临时修改​​

8.

自定义的镜像如果带版本号 不要运行不带版本号的容器

9.

这里我们可以看到自定义docker 是可以ping到mysql  也就是说二者拥有相同网关的情况下 dns一旦重新给二者分配ip就会导致二者ip可能与部分config冲突导致网络问题

因此需要引入自定义网络的概念

10 docker network 命令如下

11.总结来说docker基础知识 就是 镜像--启动-->容器  网络

第三天部署

1.

结尾说明:由于本人某9混子毕业  在某血汗公司搞软硬结合  常态化加班被拷打幡然醒悟   后续每天晚上下班后都会学习 spirngboot/cloud/AI 等知识  每天都会更新下一个问题或者理解作为笔记

### 黑马商城使用 Docker 部署的相关资料 #### 安装和配置 Docker 为了成功部署黑马商城,首先需要确保 Docker 已经正确安装并完成基本配置。可以通过官方文档了解如何构建镜像以及管理容器环境[^1]。 ```bash sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io ``` 上述命令适用于基于 Debian 的 Linux 发行版,用于安装最新版本的 Docker。如果操作系统不同,则需查阅对应平台下的具体安装方法。 #### 下载并设置 Docker Compose 除了基础的 Docker 外,还需要借助 **Docker Compose** 来简化多服务应用的编排工作流。根据提供的参考资料[^3],可以按照如下方式下载适合当前系统的二进制文件: ```bash sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 此脚本会自动获取指定版本号 `v2.29.0` 对应的操作系统架构兼容包,并赋予执行权限给目标路径中的可运行程序 `/usr/local/bin/docker-compose`。 #### 编写 compose 文件实现自动化运维流程 针对黑马商城项目而言,其完整的部署方案通常涉及多个微服务组件协同运作。因此建议参照官方推荐的最佳实践来定义清晰的服务依赖关系及其参数选项[^2]。 下面是一个简单的例子展示可能存在的部分结构化描述片段: ```yaml version: '3' services: web: image: registry.example.com/mall-web:v1.0 ports: - "8080:80" environment: SPRING_PROFILES_ACTIVE: prod depends_on: - db db: image: mysql:5.7 volumes: - ./data/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: examplepassword ``` 以上 YAML 格式的配置说明了两个主要模块——前端界面 (`web`) 和后台数据库存储单元 (`db`) ——之间的交互逻辑。其中还包含了端口映射规则、持久化数据挂载位置设定等内容项。 #### 运行与验证 当所有的前期准备工作都完成后,就可以通过一条简洁明了的指令启动整个生态系统: ```bash docker-compose up -d --build ``` 这条语句不仅能够拉取最新的远程仓库资源重新创建本地实例,而且还能以后台守护进程的形式保持长期在线状态以便于后续访问测试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值