2024最新SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等)
Day 2
你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客
这是我的 github https://github.com/Qiuner ⭐️
gitee https://gitee.com/Qiuner 🌹
如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^)
想看更多 那就点个关注吧 我会尽力带来有趣的内容 😎
因为centOS7在2024年6月停服,因此我选择使用Ubunt来完成安装使用Docker
- 博主发现自己经过多种方式后都没有成功将乌班图连接上ssh工具,加上最近很忙很忙很忙在加上已学过微服务,于是放弃了使用乌班图,而是用官方的linux。不然肯定狠狠调研下,写一篇博客
- 有小伙伴想用乌班图来做可以在下面留言,我会看情况再用乌班图过一遍
CentOS 7 版本
容器与镜像
命令解读
docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
Docker常用命令
- 容易拥有自己的ip内存什么的 每次使用docker run是再重复创建容器
其余常见命令
- 容器生命周期管理:
docker run
: 运行一个新容器。docker start
: 启动一个停止的容器。docker stop
: 停止一个运行中的容器。docker restart
: 重启一个运行中的容器。docker pause
: 暂停容器中的所有进程。docker unpause
: 恢复暂停的容器中的所有进程。docker kill
: 强制停止一个运行中的容器。docker rm
: 删除一个或多个容器。docker ps
: 列出正在运行的容器。docker ps -a
: 列出所有容器,包括停止的容器。
- 镜像管理:
docker images
: 列出本地的镜像。docker pull
: 从仓库中拉取一个镜像。docker build
: 根据 Dockerfile 构建一个镜像。docker tag
: 给镜像打标签。docker rmi
: 删除一个或多个镜像。
- 容器操作:
docker exec
: 在运行中的容器中执行命令。docker attach
: 进入一个正在运行的容器。docker cp
: 在容器和本地文件系统之间复制文件或目录。docker inspect
: 显示容器的详细信息。
- 网络:
docker network ls
: 列出 Docker 网络。docker network create
: 创建一个 Docker 网络。docker network connect
: 将容器连接到网络。docker network disconnect
: 将容器从网络断开连接。
- 数据卷:
docker volume ls
: 列出 Docker 数据卷。docker volume create
: 创建一个 Docker 数据卷。docker volume rm
: 删除一个或多个 Docker 数据卷。
- Docker Compose(用于定义和运行多容器的应用):
docker-compose up
: 构建并启动应用的所有服务。docker-compose down
: 停止并移除应用的所有服务。docker-compose build
: 重新构建服务。docker-compose logs
: 查看服务的日志。
Docker小案例
docker pull nginx
- 这里介绍了开发很重要的东西 找文档。
- 前后端开发太庞大了,需要有不懂就查的能力 也不知道面试面那些有啥用🤧 招的是能解决问题的人 而不是八股
- 这一步代码只是创建了容器,还需要运行
Docker基础命令实践
起别名
vi ~/.bashrc
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
docker ps
列出当前运行的 Docker 容器。--format
选项用于自定义输出格式。table
指定输出应为表格格式。{{.ID}}
、{{.Image}}
、{{.Ports}}
、{{.Status}}
和{{.Names}}
是 Docker 容器的各个属性。
alias dis='docker images'
- 然后点击ESC键 输入 :wq 来退出
- 再输入 source ~/.bashrc
- 如此 成功修改命令别名
数据卷挂载
cd /usr/share/nginx/html /usr/share/nginx/html# ll • 1 • 2
- 因为容器为了精简,只保存最小化运行的内容,没有vi 因此不能通过vi来编辑index.html
- 就相当于Vue中的双向绑定一样,在绑定的一边修改也会影响到另一边
- 创建Nginx文件的时候,会在docker中也创建一个目录来存放这个容器的相应内容
- 使用 docker volume --help
先移除已有的,因为只能在创建这个容器时实现数据数据绑定 docker rm -f nginx 再次创建,这样创建能够实现将数据绑定 docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
docker volume ls docker volume inspect html cd /var/lib/docker/volumes/html/_data
为什么你能在主浏览器访问虚拟机配置的Nginx?
- 原因是虚拟机与主机处于同一网络中,并且 Docker 容器的端口映射允许虚拟机的特定端口流量被转发到容器内的 Nginx 服务。确保虚拟机的 IP 地址和 Docker 端口映射配置正确,这样就可以成功访问容器内的服务。
使用MobaXterm来进行编辑
- 就可以在这里直接修改
- 也可以将外部资源直接拖进来
本地目录挂载
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
- 在执行这段命令之前需要先进行创建文件夹
- 使用cd ~ 切换目录 然后使用mkdir 创建目录
制作自定义镜像
- 镜像和容器的关系就是类和实例
- JRE,全称 Java Runtime Environment(Java 运行时环境),是用于运行 Java 应用程序的一个软件平台。它包含了 Java 虚拟机(JVM)、Java 类库和其他必要的组件,允许用户在其计算机上运行用 Java 编写的程序。JRE 是 Java 开发工具包(JDK)的一个子集,专注于运行 Java 应用程序,而不包括编译和开发工具。
**第一步 ** 准备Linux运行环境 这里因为不知道java运行要哪些东西,因此把乌班图全部拿过来了
第二步 安装JRE
第三步
第四步 编写脚本并启动
大功搞成
镜像在docker中的结构
- 这样分层的好处是 制作完乌班图所需要依赖镜像后,可以将其上传,然后下次要制作其他时,直接在这个镜像基础上开始制作
- 而且镜像也会有差不多的地方,因此可以减少所用空间
黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day2 全网最快最全(下):https://developer.aliyun.com/article/1548623