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

背景

使用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。

到此这篇关于最新IDEA快速实现Docker镜像部署运行的文章就介绍到这了,更多相关IDEA Docker镜像部署运行内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA中进行Docker项目部署的实现步骤

    现在大部分项目已经开始部署在Docker上面了,可是部署环节还是有点麻烦,所以本文想讲解一下如何使用IDEA一键部署. Docker配置 修改配置文件 打开Docker的配置文件: vim /usr/lib/systemd/system/docker.service 将下面这行注释掉: # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 新写一行: ExecStart=/usr/bi

  • 浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

    最近有一个朋友问我有没有玩过docker,回答起来底气不是很足 ^ - ^ (刚开始玩cloud的时候接触过,玩过一会,后面在实际开发中比较少用,所以基本上可以说是忘记了.),今天花了点时间整理之前的笔记以及整理走一个流程,记录一下吧,下次玩得时候C V 就好啦~ 1. Docker的安装以及开启远程访问 1.1 安装 # 检查虚拟机内核版本,必须是3.10及以上 uname -r # 安装docker yum install docker # 输入y确认安装 # 启动docker system

  • IDEA连接远程服务器Docker部署Spring Boot项目的详细教程

    开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:https://www.jb51.net/article/188048.htm,其中有详细的讲解 Windows上有安装IDEA 正式开始工作 第一步:配置Docker,开启远程访问(注:仅供学习参考,实际生产环境万万不可,会产生很大的安全风险),默认端口是2375,也可以修改为其他端口 1.修改/lib/

  • java通过Idea远程一键部署springboot到Docker详解

    一.开发前准备 1. Docker的安装可以参考https://docs.docker.com/install/ 2. 配置docker远程连接端口 vi /usr/lib/systemd/system/docker.service 找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示 3. 重启docker systemctl daemon-reload systemctl start docker 4. 开放端口 firewall-cmd --zon

  • 基于idea把springboot项目部署到docker

    这篇文章主要介绍了基于idea把springboot项目部署到docker,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.idea安装docker插件 1.安装 2.配置 备注:要使docker可以通过2375端口访问,需要配置docker vim /lib/systemd/system/docker.service 修改如下 3.配置容器 Dockerfile文件(此处为了方便,将Dockerfile文件放到根目录下面) FROM jav

  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 yum list installed | grep docke 安装docker yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表 开放2375端口,开启远程访问 vim /usr/lib/systemd/system/docker.s

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

    背景 使用idea配合docker,实现从javaweb开发,部署,运行全过程. 环境:已经配置好的docker.已经安装好的mysql8容器.一个springBoot 框架的web项目(内含swagger,便于测时) 开启Docker的远程连接 网上的方法找不到对应的docker.service文件,可能版本或者安装方式不同. 通过 systemctl status docker 查找docker.service文件位置: 修改/etc/systemd/system/docker.servic

  • Intellij IDEA快速实现Docker镜像部署的方法步骤

    目录 1.Docker开启远程访问 2.Intellij IDEA安装Docker插件 3.spring boot服务Docker部署 4.创建Docker镜像 参考: 1.Docker开启远程访问 [root@izwz9eftauv7x69f5jvi96z docker]# vim /lib/systemd/system/docker.service #修改ExecStart这行 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:

  • 基于docker 搭建Prometheus+Grafana的过程详解

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作.Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus.现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控. Prometheus基本原理是通过HTT

  • Docker Compose部署及基础使用详解

    一 Docker Compose概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后,使用单个命令,您可以从配置中创建并启动所有服务. Compose适用于所有环境:生产,登台,开发,测试以及CI工作流程. 使用Compose基本上是一个三步过程: 在Dockerfile中定义您的应用程序环境,以便可以在任何地方进行再生产. 定义构成应用程序的服务,docker-compose.yml 以便它们可以在隔离环

  • Docker 镜像和容器的区别详解

    最近学习Docker,被Docker 的镜像和容器搞的晕头转向,索性上网查找相关资料并整理下彻底的理解这块内容,有需要的小伙伴可以看下,少走点弯路. Docker的镜像和容器的区别 一.Docker镜像 要理解Docker镜像和Docker容器之间的区别,确实不容易. 假设Linux内核是第0层,那么无论怎么运行Docker,它都是运行于内核层之上的.这个Docker镜像,是一个只读的镜像,位于第1层,它不能被修改或不能保存状态. 一个Docker镜像可以构建于另一个Docker镜像之上,这种层

  • linux上nginx安装部署及使用过程详解

    1.下载 官网下载地址 2.部署 2.1安装前提 在linux下安装需要安装一下组件 1. gcc && g++ yum install gcc-c++ 2. pcre yum install -y pcre pcre-devel 3. zlib yum install -y zlib zlib-devel 4. openssl yum install -y openssl openssl-devel 2.2 安装 1. 解压nginx文件 tar -zxvf nginx-1.17.5.t

  • 利用docker搭建LAMP运行环境教程详解

    LAMP介绍 LAMP 指的 Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和 PHP(有时也是指 Perl 或 Python) 的第一个字母,一般用来建立 web 服务器. 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本***了这些软件).当一起使用的时候,它们表现的像一个具有活力的解决方案包. 下面介绍如何使用docker来搭建一个包含lamp组件的

  • Docker容器搭建并运行实现过程详解

    直接拉取镜像,创建容器并运行容器一把梭哈: docker run -d --restart=always \ --privileged=true \ --net=host \ --name=fastdfs \ -e IP=192.168.149.128 \ -e WEB_PORT=80 \ -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs 其中-v ${HOME}/fastdfs

  • 使用Docker搭建MQTT服务器的过程详解

    1. 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6 2. 运行镜像 –name 名字 -p 18083 服务器启动端口 -p 1882 TCP端口 -p 8083 WS端口 -p 8084 WSS端口 -p 8883 SSL端口 -d 指定容器 docker run --name emq -p 18083:18083 -p 1883:1883 -p 8084:8084 -p 8883:8883 -p

  • docker打包Python环境的过程详解

    docker打包Python环境过程,步骤如下所示: 1 导出pip list下面的依赖包 pip freeze > requirements.txt 把导出的requirements.txt放在docker_test目录里 docker_test为将要打包的代码源文件夹.此demo的docker_test文件夹下面应该有requirements.txt和app.py文件 2 编写Dockfile文件 在docker_test同目录下创建Dockfile文件,格式如下: # 基于的基础镜像 FR

随机推荐