"CreatedAt": "2024-05-17T19:57:08+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/html/_data",
"Name": "html",
"Options": null,
"Scope": "local"
}
]
4.查看/var/lib/docker/volumes/html/_data目录
ll /var/lib/docker/volumes/html/_data
可以看到与nginx的html目录内容一样,结果如下:
总用量 8
-rw-r–r–. 1 root root 497 12月 28 2021 50x.html
-rw-r–r–. 1 root root 615 12月 28 2021 index.html
5.进入该目录,并随意修改index.html内容
cd /var/lib/docker/volumes/html/_data
vi index.html
6.打开页面,查看效果
7.进入容器内部,查看/usr/share/nginx/html目录内的文件是否变化
docker exec -it nginx bash
至此Nginx容器搭建运行以及数据卷挂载到 /var/lib/docker/volumes/html/\_data目录下成功。
可以通过ip:80直接访问查看运行情况:![1cfe1b3daf644e678d709730c3d5df47.png](https://img-blog.csdnimg.cn/direct/1cfe1b3daf644e678d709730c3d5df47.png)
---
## 3. 搭建MySQL环境:
接下来,我们演示MySQL容器的创建运行以及本地目录挂载:
在root目录下面创建一个mysql目录在mysql目录里面创建conf和init目录;
**conf:里面放配置文件(CNF类型**)
下面主要是配置了MySQL的默认编码,改为utf8mb4
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4’
**init:放数据库(SQL类型)**
---
接下来,我们演示本地目录挂载:
1.删除原来的MySQL容器
docker rm -f mysql
2.进入root目录
cd ~
3.创建并运行新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
4.查看root目录,可以发现~/mysql/data目录已经自动创建好了
ls -l mysql
结果:
总用量 4
drwxr-xr-x. 2 root root 20 5月 19 15:11 conf
drwxr-xr-x. 7 polkitd root 4096 5月 19 15:11 data
drwxr-xr-x. 2 root root 23 5月 19 15:11 init
查看data目录,会发现里面有大量数据库数据,说明数据库完成了初始化
ls -l data
MySQL安装完毕!通过任意客户端工具即可连接到MySQL。
由于ruoyi-vue里面的sql没有类似下图这样的创建数据库语句所以我们不能直接把sql文件放到init目录下自动初始化数据库,所以我们要手动初始化导入ry-vue数据库:![999ef351569f4bd4b4b5b856663e2a82.png](https://img-blog.csdnimg.cn/direct/999ef351569f4bd4b4b5b856663e2a82.png)
用数据库可视化工具连接这个数据库,然后手动创建ry-vue数据库以及运行SQL文件导入数据。
![49f936dd52c44b2eb1e034f904caaa4a.png](https://img-blog.csdnimg.cn/direct/49f936dd52c44b2eb1e034f904caaa4a.png)
---
## 4. 搭建Redis环境
**拉取Redis镜像:**
docker pull redis
**创建并运行Redis容器:**
docker run -d --name redis -p 6379:6379 redis
可以通过docker ps查看容器的运行状态
---
## **5. 构建Java环境运行后端代码:**
因为每个容器都是互相隔离的,要使他们能互通所以我们要新创建一个网络并且让我们所有容器都加入该网络。
* 在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身
* 在同一个自定义网络中的容器,可以通过别名互相访问
创建新的网络
docker network create ruoyinet
让nginx、mysql、redis都加入ruoyinet网络
docker network connect ruoyinet nginx
docker network connect ruoyinet mysql
docker network connect ruoyinet redis
---
然后我们去修改后端代码的配置部分进行打jar包操作:![98394527f67544189ecc561e69c196d9.png](https://img-blog.csdnimg.cn/direct/98394527f67544189ecc561e69c196d9.png)
这里的mysql的IP我们就用容器名字代替,然后填写创建MySQL容器的账号密码。
---
![7e31823be8d14f3eb9d85147f92f89fb.png](https://img-blog.csdnimg.cn/direct/7e31823be8d14f3eb9d85147f92f89fb.png)
这里redis的IP我们也用容器名字代替
---
![f3501d18713f46a1bbc98acd3ef8c21f.png](https://img-blog.csdnimg.cn/direct/f3501d18713f46a1bbc98acd3ef8c21f.png) 这里不要忘记更改路径
---
然后通过idea中的maven可视化操作栏中先clean 然后再package,然后在如图目录下就找到ruoyi-admin.jar文件了
![90b9b1236b2c44beb89202bc6d1d7115.png](https://img-blog.csdnimg.cn/direct/90b9b1236b2c44beb89202bc6d1d7115.png)
同学们思考一下:以后我们会有很多很多java项目需要打包为镜像,他们都需要Linux系统环境、JDK环境这两层,只有上面的3层不同(因为jar包不同)。如果每次制作java镜像都重复制作前两层镜像,是不是很麻烦。所以,就有人提供了基础的系统加JDK环境,我们在此基础上制作java镜像,就可以省去JDK的配置了:
基础镜像
FROM openjdk:11.0-jre-buster
设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
拷贝jar包
COPY ruoyi-admin.jar /app.jar
入口
ENTRYPOINT [“java”, “-jar”, “/app.jar”]
当Dockerfile文件写好以后,就可以利用命令来构建镜像了。
在服务器root目录下创建ruoyi-vue文件夹,把打的ruoyi-admin.jar文件和上面的Dockerfile文件放进去,然后,执行命令,构建镜像:
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/9f7d350fc860e501e9578f769e6cf028.png)
![img](https://img-blog.csdnimg.cn/img_convert/3aedcb9e6d88930b10ea8d01f1e4822b.png)
![img](https://img-blog.csdnimg.cn/img_convert/4e66a167f9b7bb880adf51b937564d6d.png)
![img](https://img-blog.csdnimg.cn/img_convert/304c46fa7f161c92086612b8c1ba030d.png)
![img](https://img-blog.csdnimg.cn/img_convert/ed2a009a38730b876ad48326e84f51cc.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/c6a09320a2fb54017d3b826b2b4f75e0.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
1. **linux从入门到精通(第2版)**
2. **Linux系统移植**
3. **Linux驱动开发入门与实战**
4. **LINUX 系统移植 第2版**
5. **Linux开源网络全栈详解 从DPDK到OpenFlow**
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)
**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**
很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**