使用IDEA的Docker插件快速实现Docker镜像构建和部署

开发环境

  1. 开发环境操做系统:Windows 10
  2. IntelliJ IDEA: 2019.2.4 (Ultimate Edition)
  3. Docker服务所在环境:Ubuntu 18.04.4 Server
  4. Docker:19.03.8(Community)
  5. Windows版Docker Compose:1.25.4

1. Docker开启远程访问

参照这篇文章Docker开放远程安全访问(开启2376端口和CA认证)java

2. 安装IDEA的Docker插件

在File --> Settings --> Plugins 在搜索框中输入Docker,搜索并点击安装。安装完成后重启IDEA。redis

image.png

3. IDEA中创建和Docker的链接

在File–> Settings–>Build,Execution,Deployment中找到Docker
新建一个Docker实例,链接成功后底部会显示Connection successful。spring

image.png

设置完成后,回到IDEA主界面,能够看到下面多出来一个Docker窗口或者在Services窗口中出现Docker。选中并链接Docker,链接上后显示Containers和Images就是咱们如今Docker中已经有的容器和镜像。docker

image.png

4. 使用Dockerfile构建镜像

image.png

在项目的根目录下建立Dockerfile文件,内容以下数据库

FROM java:openjdk-8-jdk-alpine
VOLUME /tmp
ADD target/*.jar app.jar

#设置alpine系统时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone

EXPOSE 8081
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

在Run/Debug Configurations中添加一个新配置,选择Docker->Dockerfile,输入配置名、容器名、端口绑定等。segmentfault

image.png

image.png

在配置启动项中找到Before launch:Activate tool window,在这里新增一个Run Maven Gold缓存

image.png

在Command line中添加命令 clean package 这么作的目的是能够在代码修改以后点击运行时自动打包并构建Docker镜像,若是不配置的话,修改后的代码并不会被打包到Docker镜像中。安全

点击运行,咱们会发现项目已经启动成功了,在右侧还能够查看日志等信息,很是方便。app

image.png

5. 使用Docker Compose构建镜像

若是咱们的项目须要链接数据库或者缓存,那么能够使用Docker Compose把项目和数据库同时构建。dom

在项目根目录下建立docker-compose.yml文件,内容以下:

image.png

version: '3'
services:
  hello-spring-cloud-alibaba-nacos-provider:
    restart: always
    build: .
    image: hello-spring-cloud-alibaba-nacos-provider
    container_name: hello-spring-cloud-alibaba-nacos-provider
    ports:
      - "8081:8081"
  redis:
    restart: always
    image: redis
    container_name: redis
    volumes:
      - ./redis/data/:/data/

在Run/Debug Configurations中添加一个新配置,选择Docker->Docker-compose,输入配置名称并选择刚才建立的docker-compose.yml文件,一样在Before launch中新增一个Run Maven Gold,命令为clean package

image.png

点击运行

image.png

运行成功,这里出现了新的Docker Compose容器

image.png

相关文章
相关标签/搜索