在idea上使用docker作为java的开发环境


准备,开发环境使用的MacOS, windows 和 Linux理论上差异不大。

  1. idea 2017.2, docker integration 3.0.1
  2. 安装idea插件 Docker integration 3.0.1
  3. 安装docker for Mac 和 docker-compose (一般使用pip或brew安装)
  4. 在idea中指定docker-compose的目录。

    1
    2
    3
    # 安装完成docker-compose查看可执行文件目录
    which docker-compose
    # /usr/local/bin/docker-compose

    在idea中打开 IntelliJ IDEA > Preferences > Build, Execution, Deployment > Docker > Tools. 在Docker Compose executable 中配置/usr/local/bin/docker-compose

    配置docker-compose

  5. 安装方法自行百度或Google,文章结尾有部分参考。

配置连接本地docker daemon

  1. 配置
    连接本地docker daemon
  2. 连接
    链接到 docker daemo

配置连接远程docker daemon

  1. 在服务器上配置可以远程连接的docker daemon

    • 远程登录到安装docker的服务器,编辑文件 /etc/docker/daemon.json, 在json最外层加上 "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"],, 类似下面的结构。

      1
      2
      3
      4
      5
      # 0.0.0.0表示任意IP的主机都可以访问,安全起见 0.0.0.0 改成允许访问的IP。
      {
      "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"],
      "registry-mirrors": ["https://ftichs.mirror.aliyuncs.com"]
      }
    • 防火墙开启 2375 端口

      1
      2
      firewall-cmd --zone=public --add-port=2375/tcp --permanen
      firewall-cmd --reload
    • 重启docker,systemctl restart docker

    • 在本地机器(外网ip必须是daemon.json配置的IP)测试,docker -H server_ip:2375 images
  2. 配置 idea,和配置本地基本一样。
    配置远程docker daemon
  3. 连接和连接本地docker一样。

编写一个配置文件,部署应用

  1. 要先有一个docker-compose.yml/Dockerfile/docker镜像。任意一个都行,看你想用什么方式部署了。下面用docker-compose做实例。

    1
    2
    3
    4
    5
    6
    7
    version: '3.1'

    services:
    tomcat:
    image: tomcat:7.0.81-jre8
    ports:
    - "8088:8080"
  2. 配置,使用docker-compose就可以忽略Container选项卡了。
    配置运行配置项

  3. 运行(部署)
    运行(部署)

部署成功后访问 http://localhost:8088查看效果。可以通过编写Dockerfile(在docker-compose.yml中引用Dockerfile编译镜像)把java应用部署到docker 容器。

idea配置远程调试, 调试部署到docker中的应用

下面是不使用docker时的远程调试

参考