本文仅供学习,正常发布线上项目,千万不能这么干

如果你已经掌握这种简单的发布方式,建议学习配置证书的发送方式,避免主机被黑
docker基础(21):配置CA证书远程发布项目


文章目录

  • 通过docker插件发布项目到服务器
  • 第一步、开启docker远程访问
  • 第二步、安装docker插件
  • 第三步 、准备一个测试项目
  • 第四步、配置configuraction
  • 遇到的问题
  • 问题1: 日志时间不对,这里明显少了8个小时,属于世界标准时。
  • 解决办法:
  • 记一次惨痛教训


通过docker插件发布项目到服务器

建议在自己电脑的虚拟机上操作。

第一步、开启docker远程访问

  1. 编辑/lib/systemd/system/docker.service
vim /lib/systemd/system/docker.service

开启远程

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

idea 如何启动docker的镜像 docker idea一键部署教程_intellij-idea


2. 重新加载配置并重启docker

# 重新加载配置
systemctl daemon-reload
# 重启docker
service docker restart

idea 如何启动docker的镜像 docker idea一键部署教程_容器_02

  1. 测试访问远程端口
curl localhost:2375/version

idea 如何启动docker的镜像 docker idea一键部署教程_容器_03

第二步、安装docker插件

  1. 打开插件市场
  2. 安装docker插件,安装后需要重启IDEA
  3. 配置远程

第三步 、准备一个测试项目

前面我已经手动发布过一个项目,这里继续使用这个项目进行发布,如果不知道如何准备,请移步查看。

docker基础(14):如何手动发布项目

idea 如何启动docker的镜像 docker idea一键部署教程_idea 如何启动docker的镜像_04

第四步、配置configuraction
  1. 修改Dockerfile,(由于手动发布和和IDEA发布时jar文件的位置不一样,所以需要改动)
FROM java:8

#手动发布时jar和Dockerfile是同目录
#COPY *.jar /app.jar

# 本机jar在target目录
COPY target/*.jar /app.jar

CMD ["--server.port=8080"]

# 对外端口
EXPOSE 8080

CMD echo "----app start---"

ENTRYPOINT ["java","-jar","/app.jar"]
  1. 点击配置
  2. idea 如何启动docker的镜像 docker idea一键部署教程_idea 如何启动docker的镜像_05

  3. 点击+,创建一个发布配置。
  4. idea 如何启动docker的镜像 docker idea一键部署教程_intellij-idea_06

  5. 填写配置信息,点击ok
  6. idea 如何启动docker的镜像 docker idea一键部署教程_容器_07

  7. 打包生成jar文件
  8. idea 如何启动docker的镜像 docker idea一键部署教程_docker_08

  9. 发布到远程docker
  10. idea 如何启动docker的镜像 docker idea一键部署教程_idea 如何启动docker的镜像_09

  11. 选择你刚刚的配置名称,控制台输出发布成功。
  12. idea 如何启动docker的镜像 docker idea一键部署教程_idea 如何启动docker的镜像_10


  13. idea 如何启动docker的镜像 docker idea一键部署教程_docker_11


  14. idea 如何启动docker的镜像 docker idea一键部署教程_jar_12

  15. 测试访问,http://127.0.0.1:28080/hello

idea 如何启动docker的镜像 docker idea一键部署教程_intellij-idea_13

到这里项目就发布成功了

遇到的问题

问题1: 日志时间不对,这里明显少了8个小时,属于世界标准时。

idea 如何启动docker的镜像 docker idea一键部署教程_idea 如何启动docker的镜像_14

解决办法:

修改Dockerfile,设定时区

# 解决时区问题
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

idea 如何启动docker的镜像 docker idea一键部署教程_intellij-idea_15


如果是docker命令运行,则可以可以在启动时,添加如下参数设定时间

-v /etc/localtime:/etc/localtime

记一次惨痛教训

就在我3月17日开启docker 2375远程部署,结果第二天3月18日就被拉取挖矿了,千万不要无密码开启这个远程部署。如果是学习,请操作完成后关闭掉服务,或者安全组配置ip白名单。

idea 如何启动docker的镜像 docker idea一键部署教程_jar_16


idea 如何启动docker的镜像 docker idea一键部署教程_容器_17


相关的解决办法:http://blog.itpub.net/69988117/viewspace-2773055/