DOCKER(国内镜像源,安装相关微服务组件,py以及jar包的docker打包(上传私有云以及输出本地文件))

前言

        之前单独在旧的帖子下面更新的时候,码字码了1000多字的时候电脑蓝了,重启什么东西都没有,我红了。平台上面的自动保存是针对新文章的。

        这周因为隔壁有项目要验收了,我的好大哥就把我派过去配合赶进度了,还体验了一下单休,yysy,双休和单休就是不一样,周日一从床上爬起来就想,咦,怎么明天又上班了,还是双休好啊,虽然事情有点多,但还是腾出时间记录和学习了一些新知识,java的docker部署走了一遍后,自己做的flask+VUE3也走了一遍,今天就总结一下。

利用现有微服务框架软件熟悉docker部署以及微服务部署

        之前好大哥不是给我公司的服务器上划了一块linux虚拟机给我吗,我就想哥们这老东西笔记本跑oa,还得在自己的电脑安个虚拟机跑windows跑这些,不如挪去服务器上。(没错笔者一开始蠢蠢的用了windows虚拟机跑这些,实际上后来在服务器是用linux搞了一遍,又在linux上用docker实现了一遍。。。。😅)(给个建议,远程连接就最好用Xshell之类带有Xftp的可视化的文件传输平台,可以直接在本机软件打开更改(比如vscode,直接ctrl+s保存)不用vim等指令在linux里修改配置,虽然有点倒反天罡,但用多了确实很香)

        这周接触的就是docker,公司oa的微服务架构MySQL+redis+rabbitmq+nacos,使用公司的服务器上的linux系统部署docker,注意,使用docker的部署将会比传统的安装占用更大的物理空间,因为docker在进行打包的时候会一致打包所需要的环境,而且不同容器的环境相互独立。但这也有一个好处,他能让这些打包后的容器转移至其他地方仍然还能正常运行。

        因为我不可能将公司的文件发出,使用我这里推荐使用若依http://doc.ruoyi.vip/的前后端分离项目,或者是微服务框架来尝试部署docker训练,我也通过若依的前后端分离项目实现了一次docker部署和打包上传云仓库,微服务框架的若依项目估计和我之前接触的公司项目差不多,先部署好nacos,在java配置好网关(nacos),在nacos写好相应的配置文件,估计微服务框架的application不用更改,每个项目都有readme.md文件有相关的内容。微服务框架教程,没用过可以看一看的教程,不过推荐自己上网看看相关的  

(建议做好redis数据库的选用和mysql数据库的命名,以防出现不必要的数据复用)

 docker国内镜像可能的解决方法以及安装过程

        首先,就是docker的安装只看源和github的源(个人认为CloudFlare可以更换为阿里云的私人仓库实现,本人没有尝试)。下面的第一个链接可以实现大部分人的需求,重要组件可以考虑设置为开机自启动。

        docker||不行试试这个mysql||不行试试这个Nacos||不行试试这个redis

出现这个就是安装成功了

mysql的docker安装过程中error1045但不是密码问题

        在使用mysql安装时,出现了我设的密码MySQL不认我这个密码,尝试密码很多次后,发现mysql就是不认这个密码,重安好多次发现mysql就是不认密码。解决方法:需要提前准备配置文件写入后进行映射,上面有链接那个(mysql的链接中有相关内容)。

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

 其他转移mysql数据库出现的情况

         不同版本的MySQL安装使用,也会可能存在意料之外的错误,docker容器的mysql版本为8.7,原运行环境的MySQL为8+,运行后出现错误,因为5.7有更严格的规则,输入的数字没经过强制转换可能会报错,而8+版本看起来是自动将数字从字符转为了数值。

打包为docker容器

        无论打包什么文件为docker容器,打包的过程都需要docker软件的支持,但是可以先准备配置文件,转移至有docker软件/组件的环境中打包。docker的配置文件就是dockerfile。

dockerfile各个参数

python(因为笔者一开始做了py+VUE3的小项目,所以一起做了)

        先说打包python,建议下载pipreqs库,再进行requirement的所需环境输出,否则直接打印requirement表会输出当前环境的所有库。

`pipreqs` 是一个自动扫描 Python 项目并生成项目所依赖的第三方库列表的工具。这个库可以帮助开发者快速生成 `requirements.txt` 文件,确保在不同环境中重现相同的依赖关系,从而保证项目的可移植性和一致性。

### 如何安装 `pipreqs`:
你可以通过 Python 的包管理器 pip 来安装 `pipreqs`。打开命令行工具,输入以下命令:
```
pip install pipreqs
```

### 如何使用 `pipreqs`:
使用 `pipreqs` 生成依赖文件的基本命令格式如下:
```
pipreqs /path/to/project
```
这会在指定的项目目录下生成 `requirements.txt` 文件。你还可以指定输出文件的名称,排除特定依赖库,以及指定 Python 解析版本等。例如:
- 指定输出文件:
  ```
  pipreqs /path/to/project --output-file requirements.txt
  ```
- 排除特定依赖:
  ```
  pipreqs /path/to/project --exclude package_name
  ```
- 指定 Python 版本:
  ```
  pipreqs /path/to/project --python 3.6
  ```
- 生成包含版本号的依赖文件:
  ```
  pipreqs /path/to/project --use-wheel
  ```

### 注意事项:
- `pipreqs` 会分析项目的 `import` 语句来找出所需的依赖库,确保不会遗漏任何必要的库 。
- 如果在生成依赖文件时遇到编码问题,比如在 Windows 系统上,可以使用 `--encoding=utf-8` 参数来指定编码格式 。
- 使用 `pipreqs` 生成的 `requirements.txt` 比直接使用 `pip freeze` 更为精确,因为它只会包含项目中实际使用到的库 。

使用 `pipreqs` 生成依赖列表后,你可以使用以下命令来安装这些依赖:
```
pip install -r requirements.txt
```

这是一个非常实用的工具,可以大大节省管理项目依赖的时间,并且减少手动管理依赖时可能出现的错误。

        我的python文件左右3kb,所需库只有4个,在经过docker打包后变成1G多,如果你不喜欢下一个小小的pipreqs库,也对时间和内存没什么太大了留恋的话,你就让他去吧。

        关于过大的python打包,下面的这个教程也有拆分打包的方法。

        这里是python文件的打包教程, 

这里是jar的打包过程

        这里是java文件的打包教程

部署多个前端网页跳转的nginx配置

        这里是nginx部署多个服务的方法

        注意,无论是docker部署,nginx的转发配置,都需要关注端口

这是docker运行指定端口的样式,注意一定要规划好宿主机的端口,不然你会很痛苦的。

docker run -d -p 5000:5000 test02

#这将启动一个后台容器,并将容器的 5000 端口映射到宿主机的 5000 端口。如果你的应用使用了不同的端口,请相应地更改端口号。

        docker容器内的ip地址相关不大清楚目前,不知道容器具体的通讯方式,估计也是桥接。在flask的开放ip设置为0.0.0.0,一开始设置为宿主机ip结果无效,前端无法通过预留端口连接容器。

if __name__ == "__main__":
    app.run(debug=True,host='0.0.0.0' ,port=5000)#别摁抄啊

利用阿里云创建私有仓库上传docker

        python的打包过程非常的慢,java非常迅速,出来的python容器成品也非常大,然后尝试上传私有云。还是这个 我估摸这这个也可以使用上面那位赛博仙人的方法,摆脱使用第三方库。(也就是使用CloudFlare,也可以尝试CloudFlare上传个人容器)

可以用不同版本分割为不同的容器。除了云上传,也可以尝试打包为tar文件,具体问问ai吧。

实现效果

        

         像怎么开机自启啊,相关的docker指令也要了解一下,linux的相关帮助文档都可以 -h调出,实在不行就去问ai吧。

 python一个看起来简单小小的项目,花费了非常长的时间和空间,那1.17G就是打包后的

 (8/26日记)

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值