最新IDEA快速实现Docker镜像部署运行的过程详解

作者:mofsfely2 时间:2022-02-26 10:41:02 

背景

使用idea配合docker,实现从javaweb开发,部署,运行全过程。
环境:已经配置好的docker、已经安装好的mysql8容器、一个springBoot 框架的web项目(内含swagger,便于测时)

开启Docker的远程连接

网上的方法找不到对应的docker.service文件,可能版本或者安装方式不同。
通过 systemctl status docker 查找docker.service文件位置:

最新IDEA快速实现Docker镜像部署运行的过程详解

修改/etc/systemd/system/docker.service文件:


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

重启Docker服务:


systemctl daemon-reload
systemctl restart docker.service

2375端口开放:


firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload

重启后,验证下2375端口是否是通的:
http://192.168.137.188:2375/info

最新IDEA快速实现Docker镜像部署运行的过程详解

注:这个就表示成功了。

idea docker插件配置

idea 2019 3 版已经集成docker,未集成的请自行安装。

最新IDEA快速实现Docker镜像部署运行的过程详解

注:docker— 点击“+”后,填入连接名称和linux主机ip:docker对外端口

idea连接docker,熟悉相关界面可用操作:

最新IDEA快速实现Docker镜像部署运行的过程详解

注:集成了包括容器,镜像基本的常用命令,具体使用可自己研究,没啥难度。

springboot应用中加入dockerfile

最新IDEA快速实现Docker镜像部署运行的过程详解

注:与pom文件同级目录,文件内容如下:


FROM openjdk:8u212-jre
MAINTAINER aliyu<2557170552@qq.com>

COPY target/myframe-0.0.1-SNAPSHOT.jar /myframe-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java", "-jar", "/myframe-0.0.1-SNAPSHOT.jar"]

添加docker 运行配置

最新IDEA快速实现Docker镜像部署运行的过程详解

注:1、右键“edit configuration”
2、点击“+”,选择docker
3、选择前面定义的docker连接
4、dockerfile的名称
5、dockerfile的目录位置
6、项目镜像及版本定义
7、run build image 打勾,并命名容器名称,这样可以在创建镜像的后创建容器并运行。
8、配置宿主机与容器的端口映射
9、配置容器固定ip,以避免随机ip导致的类似项目运行找不到服务的问题。固定ip配置请参考:http://blog.java1234.com/blog/articles/628.html
ps:mysql8容器已经配置好默认ip会和这里的ip为同一网段。
10、此处可以预览命令,方便检查错误。
11、配置运行docker run 之前需要重新编译打包项目:


clean package -U -DskipTest -P test

注:因为开发时是主机访问linux内的mysql容器,而应用生成为容器运行时时应用容器访问mysql容器。yml中mysql配置不一致,所以为docker 部署专门使用test yml配置文件。ps:容器间互相访问,请查看“其他-容器间通信”标题
创建好后,可以看到:

最新IDEA快速实现Docker镜像部署运行的过程详解

注:多了一个dockerFile 启动

运行docker 启动配置

点击:

最新IDEA快速实现Docker镜像部署运行的过程详解

注:可以完整的看到maven clean 打包的过程,以及docker 构建镜像,创建并启动容器的过程。甚至可以看到容器启动项目的日志

测试访问swagger主页:

最新IDEA快速实现Docker镜像部署运行的过程详解

其他

容器之间通信

背景:因为不明白容器之间如何通信,导致配置mysql连接时,url一直不对,一直报数据库连接问题。

宿主机ip加映射端口可以访问mysql8容器:
url: jdbc:mysql://192.168.137.188:3307/db_myframe?serverTimezone=GMT

但是myframe 容器内 通过 宿主机ip加映射端口 访问失败
因为容器和容器之间的通信不一样

不能通过localhost:3306 访问,docker容器中的localhost并不是指宿主机的localhost。

docker在运行时建立了虚拟网卡,并命名为docker0
通过 docker inspect mysql8 找到ip地址 172.17.0.2 ,但是注意容器访问容器,端口需要用容器内的端口,而不是映射到宿主机的3307。

来源:https://blog.csdn.net/mofsfely2/article/details/108844138

标签:IDEA,Docker,镜像,部署
0
投稿

猜你喜欢

  • 在Fedora上建立自己的邮件服务器(5)

    2007-09-13 13:47:00
  • 友链?不如加链接式发帖留言实用

    2009-08-22 14:27:00
  • 循环复用DNS实现多服务器的负载均衡

    2008-12-26 14:19:00
  • 怎样做反向域名解析(反向DNS解析)?

    2010-02-05 19:18:00
  • SELinux中的Apache和MySQL设定

    2010-05-09 17:54:00
  • 电脑报:网页游戏不再沉默

    2008-05-13 12:08:00
  • 服务器稳定性对于排名的影响

    2007-10-03 13:42:00
  • 注意:SEO中可能被认定为垃圾网站的操作

    2008-12-23 10:08:00
  • Text Link Ads注册申请中文图文教程

    2008-01-19 13:51:00
  • 彻底卸载VMware虚拟机的超详细步骤记录

    2022-05-03 09:20:26
  • VMware虚拟机安装Fedora 27 Workstation正式版(图文)

    2022-02-23 06:08:47
  • GoDaddy:如何解压缩文件

    2010-04-26 13:07:00
  • 搜索引擎优化七种武器之竞争深度测量分析

    2009-01-04 10:43:00
  • WINDOWS服务器安装多套PHP

    2009-02-19 13:09:00
  • 域名DNS解析故障的解决方法

    2010-08-15 18:39:00
  • Godaddy主机读写权限设置(windows主机)

    2010-04-11 13:18:00
  • 腾讯明日公布财报 多家投行预测利润超13亿

    2009-11-10 14:28:00
  • 抛砖引玉:原创文章不好搞?教新手如何快速伪原创!

    2009-01-16 18:25:00
  • WIN2003服务器安全配置终极技巧(4)

    2007-11-21 14:14:00
  • Windows服务器安全设置经验详谈

    2010-03-31 19:03:00
  • asp之家 网站运营 m.aspxhome.com