文章目录
1、前置
- 上面博客已经写了项目的搭建方式,等一些介绍 传送门:https://blog.csdn.net/qq_38637558/article/details/105167120
- 我用的Windows, 这个其实没有什么区别哈
- 开发工具是 IntelliJ IDEA
- 会介绍两种上传到服务器的方式
2、IDEA配置
successful是链接成功
以我Windows为列的话, 需要开启这个:
项目结构:
Dockerfile文件内容:
# 基础镜像必要,代表你的项目将构建在这个基础上面
FROM java:8
# 对外端口
EXPOSE 8088
# 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为 testDemo.jar.我们在base(项目入口)的pom.xml中指定了打包后的jar名
COPY base/target/testDemo.jar testDemo.jar
# 运行jar包
RUN bash -c 'touch /testDemo.jar'
# 指定容器启动程序及参数
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/testDemo.jar"]
3、打包jar文件
先选择环境,这个前面有说过这个
package前可以先clenan一下
这个时候我们可以先运行一下这个jar文件, 看下我们打包的文件有没有什么问题在来操作下一步:
4、通过本地docker上传到服务器
1、打包镜像到本地
运行镜像,看下有没有问题;
OK,到目前这一步,我们镜像就打包完成了,剩余的就将镜像传到我们服务器上面,不能在本机跑啥.
两个方法:
- 通过私有docker库:,传送门: https://blog.csdn.net/qq_38637558/article/details/99603071
- 通过docker官方的来进行传送,docker hub,好像是这个,可以将项目设置成私有的,建议不要使用这种方式
- 就是我接下来要介绍的
2、上传镜像到服务器
先打包本地镜像
docker save -o testdemo.tar testdemo:1.0
上传到服务器
解压文件到镜像:
docker load < testdemo.tar
5、直接打包镜像到服务器
警告: 对下面红色的这句话如果不能理解, 就千万不要使用这种方式
警告: 对下面红色的这句话如果不能理解, 就千万不要使用这种方式
警告: 对下面红色的这句话如果不能理解, 就千万不要使用这种方式
开启了2375端口,一定要注意关闭,因为这个端口,我只要知道了你的服务器IP地址,就能连接上的docker服务,.然后拉取到你的镜像…防火墙,安全组,指定IP,证书都可以进行处理,这个地方一定要注意
1、 这个地方配置成服务器的地址
2、 配置服务器的docker
文件地址:
vim /usr/lib/systemd/system/docker.service
所加参数:
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker
开启了2375端口,一定要注意关闭,因为这个端口,我只要知道了你的服务器IP地址,就能连接上的docker服务,.然后拉取到你的镜像…防火墙,安全组,指定IP,证书都可以进行处理,这个地方一定要注意
需要注意的地方有: 这个地方的格式一定要确认, 不然写错了, 重启会失败的, 然后不要卸载重装, 要相信自己是可以解决的
会报这个错误:
Failed to restart docker.service: Unit is not loaded properly: Invalid argument. See system logs and 'systemctl status docker.service' for details.
3、运行dockerfile文件: Build Image
4、到服务器查看
docker images
6、杂谈
-
也是在网上找了写教程,然后才弄出来,难度的话,要是清楚了感觉很简单,但是要是没有弄过的话,可能就会有点点难吧,一点点
-
配置docker容器环境变量
ENV JAVA_OPTS=""
-
感觉好像没有什么可以特别注释的了,都满简单的
-
1、Maven Profiles 选择环境,勾选一个
2、Maven testdemo(root) --> clean --> package
3、修改docker配置文件 Run/Debug Configurations里面, 修改版本号 Image tag (每次更新要注意版本号修改一下,以便区分)
4、Dockerfile文件中的箭头,build image
5、查看镜像 docker images
6、本地测试跑一遍
7、docker save -o testdemo.tar testdemo:1.0
8、上传到服务器
9、docker load < testdemo.tar
10、docker run -p 8080:8080 --name testdemo–restart=always -d testdemo:1.0 (-v 日志挂载、图片等文件挂载出来)
11、查看启动日志,确认启动状态,配置环境,环境启动日志的前面几行中会有显示 -
springboot的单项目也是可以这样操作的
-
首推第五种方式, 操作本地docker在上传还麻烦些, 首先打包的镜像会很大, 上传也会很耗时
-
最后说一点, 如果配置服务器的docker, 报错了, 就是第五节的第二步, 不要想着卸载, 我当时出现这个错误, 在网上也是找了很多教程, 然后都是卸载大法, 法力无边. 其实自己思考一下, 就会知道问题出现在哪里
-
开启了2375端口,一定要注意关闭,因为这个端口,我只要知道了你的服务器IP地址,就能连接上的docker服务,.然后拉取到你的镜像…防火墙,安全组,指定IP,证书都可以进行处理,这个地方一定要注意
-
异常: standard_init_linux.go:178: exec user process caused “no such file or directory” 需注意这里为: LF