idea使用docker插件

接着上一篇docker开启远程访问后,我们就可以通过idea使用docker插件把项目部署到docker了。

首先我们先在idea安装docker插件:

在setting中安装docker插件





等待安装完成重启idea

重启完成后,我们打开settings可以看到docker



点击”+”,添加一个连接。



安装上篇配置的docker信息。我们通过tcp的方式连接到centos的docker服务。信息配置好后,idea会自动检测。然后会输出“connection successful”。

然后再工具栏选择docker的窗口,点击运行



接下来我们在idea上面操作docker

首先新建一个简单的springboot项目



我们的目的就是要把该项目放到docker上面跑起来

在src/main下面新建一个docker文件夹,目录下新建一个Dokerfile文件,写入一下的内容:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

然后设置一下启动项

选择dockerFile





这样就配置好了。不过我们这种方式有一个不好的地方就是,我们以后每次启动的时候需要先把项目编译的jar

放到src/main/docker的目录下面。因为我们在Dockerfile的文件中是这样配置的

ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar

这里的dockerdemo-0.0.1-SNAPSHOT.jar就是我们的jar,这样的配置是说明在当前目录下找这个jar。

所以为了解决上面的麻烦我们把Docker的配置修改一下

ADD /target/dockerdemo-0.0.1-SNAPSHOT.jar app.jar

把ADD的值指向绝对路径,target下面



然后我们把Dockerfile文件直接放在项目的根目录

最后我们修改一下,启动配置:Dockerfile选择根目录下面的那个

接下来我们就启动docker,构建镜像中,由于是云服务器,这里上传镜像需要一段时间。



等到docker启动完成

我们去linux上面查看一下:

通过命令docker ps

docker ps

通过命令检查进程是否存在

ps -ef|grep app*

这里说明我们已经成功把项目部署到了linux上的docker中了。

为了进一步验证,我们写一个接口:

@RestController
@RequestMapping(value = "docker")
public class DockerController { @RequestMapping(value = "getValue")
public String dockerTest() {
return "this is docker controller return value";
}
}

重新把项目部署一下。

部署完成后,我们目前还不能马上就可以访问这个刚部署的项目服务~因为:

- 第一 我们还没有在云服务器的安全组策略配置外网可以访问的端口

- - 第二 我们在设置安全组策略是设置哪。 8099吗?

- 我们要明白项目中设置的项目端口8099,我们是把这个项目整个部署到了docker的容器中的,而docker中的每一个容器我们都可以看作一个虚拟机。所以容器里面的端口的独立的。因此我们还要在云服务器上配置docker容器里面springboot项目服务端口8099的映射。



这里我们可以看到Names:spring_demo的容器对应的ports还没有端口映射。所以现在我们做的就是把该容器的8099端口映射出来。

 docker run -d -p 8099:8099 37a83b7fa149



我们先把原来的容器给停止,然后使用上面的命令制定映射宿主机端口的方式来启动容器。

执行完成后,查看容器的运行情况



到这里我们已经可以看到ports已经显示端口的映射了。

最后一步:就是在云服务器安全组策略添加一下,宿主机8099的端口访问。

我们在外网验证一下我们部署的springboot项目的接口:

访问:http://IP:8099/docker/getValue

原文地址:https://blog.csdn.net/longzhanpeng/article/details/82217698

最新文章

  1. MFC窗口乱弹问题
  2. PourOver – 快速筛选和排序大的数据集合
  3. linux系统性能监视命令
  4. ContentControl 与 ViewModel (二)
  5. redis配置文件
  6. [Flex] ButtonBar系列——控制ButtonBar菜单是否可用
  7. 动态链接库加载出错:cannot restore segment prot after reloc: Permission denied
  8. jQuery获取和设置disabled属性、背景图片路径
  9. linux脚本Shell之awk详解(二)
  10. 转 如何使用JEE6快速开发简单的webservice
  11. ionic serve 突然报错 node-sass
  12. python 私有方法
  13. Vue学习笔记二:v-cloak,v-text,v-html的使用
  14. ROS笔记2 构建一个package
  15. Windows命令行设置dns
  16. C#(.NET) HMAC SHA256实现
  17. 理解、学习与使用 JAVA 中的 OPTIONAL<转>
  18. #5 Python变量与输入输出
  19. JAVA钩子方法+模板方法
  20. ZSTU OJ 3770: 黑帽子 归纳总结

热门文章

  1. Python 变量与数据类型
  2. 连通图,set——cf1037E
  3. C++函数模板&类模板
  4. string、char* 、int数据类型相互转换
  5. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分
  6. freemarker 嵌套循环 (导出word时,修改ftl模板)
  7. ckeditor图片上传二三事
  8. pymysql 使用
  9. warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  10. 物理机多磁盘u盘安装centos