最新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文件位置:
修改/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 2019 3 版已经集成docker,未集成的请自行安装。
注:docker— 点击“+”后,填入连接名称和linux主机ip:docker对外端口
idea连接docker,熟悉相关界面可用操作:
注:集成了包括容器,镜像基本的常用命令,具体使用可自己研究,没啥难度。
springboot应用中加入dockerfile
注:与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 运行配置
注: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:容器间互相访问,请查看“其他-容器间通信”标题
创建好后,可以看到:
注:多了一个dockerFile 启动
运行docker 启动配置
点击:
注:可以完整的看到maven clean 打包的过程,以及docker 构建镜像,创建并启动容器的过程。甚至可以看到容器启动项目的日志
测试访问swagger主页:
其他
容器之间通信
背景:因为不明白容器之间如何通信,导致配置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


猜你喜欢
- 虚拟机正在使用或无法连接到报类似如下错误时解决方案首先进入该页面获得虚拟机所在位置删除.ick后缀的文件,该文件应该是保存了虚拟机上次运行时
- VMware中网络设置之Bridged 也是关于linux下vmware桥接模式、静态ip上外网的配置,不过当时更多的是用图形界面来实现的,
- 0x0 测试环境总部生产服务器与分部备份服务器要求实现异地数据备份,环境如下**centos 6.5**生产服务器目录: /home/zyt
- 从事中文点击网赚的站长可以说是一个特殊的站长群体,这个群体不被主流网站看好,但其内部却是热闹非凡。很多的人从事网上的兼职活动都是从中文点击网
- 10月11日消息,中国社交网站MySpace聚友网宣布歌手张靓颖入驻MySpace聚友网成为明星会员。这也是MySpace聚友网力图打造社交
- 从小小的文字链到全屏广告,从在网页下层弹出广告到直接在最上层弹出大幅广告,广告尺寸和方式发生了巨大的变化,不禁让我们想到未来,广告将大到什么
- 前言:一直在做站,做了很多垃圾站,没有意义的站,流量都很小,前几天一想,做站的时间也不短了,应该认真的做一个站,来看看自己的水平到底怎么样,
- 1、先修改member\do.php line:3 &nb
- 因为之前搭建的MongoDB分片没有采用副本集,最近现网压力较大,所以准备研究一下,于是在自己电脑的虚拟机中搭建环境,但是发现之前VMwar
- 本人文采不好,才小学文化,接触做网站已经快两个年头了,曾经也算月收入过万,现在ADS联盟在国内已经快不行了 所以收入也就上班族那么点了。写的
- 网上的一些防范asp木马的教程都基于提前防范的基础之上,例如:禁止FSO,利用NTFS限制用户目录等等。这些方法虽然有效,但是都是基于提前防
- 1,下载 VMware Workstation 14 Pro官网:https://www.vmware.com/cn.html需要注册一下才
- 很久没有在博客上写关于百度seo的内容了,最近发现了百度这样一个现象,百度会根据链接文字修改网站标题。首先我们在百度搜索网易,排在结果中ww
- 我做互联网这个行业有5年了,一直做网站建设和推广销售。真正拥有自己的网站是去年。那时我是自己出来单干了,还有一个代理商赠送的一个代理平台,严
- 在上次写完《史上最牛GOOGLE收录单页面时间记录:60秒》之后对WordPress的优化更有感触,于是这里总结下WordPress创建CM
- 建议先用sudo su命令切换到root账号,否则之后可能无权限操作 /opt 目录。一、下载和解压先去官网下载压缩包jdk-8u144-l
- 核心提示:搜索引擎与搜索引擎营销之间的关系,究竟什么才是未来的发展方向?我们的目的是什么?本质上都是从用户出发,可究竟未来可变的路线是什么?
- 一、概念篇在介绍排查DHCP故障之前首先为大家阐明几个概念性的东西,只有理论上充实了,才能更好的理解下面介绍的故障排除的思路。第一:DHCP
- 如果您已经在网站上使用链接单元,也许会注意到一个小小的变化,当访问者点击链接单元标题之后进入广告页面,在页面的底部我们新增了一个图片广告。我
- 面对网络社会的红与黑,个人站长与之搏斗往往无力反击唯有坚持。浑浑噩噩在互联网上爬了三年,做过不计其数的垃圾站。流量从几十到几万的都有,K的K