3

开发环境

  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认证)

2. 安装IDEA的Docker插件

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

image.png

3. IDEA中建立和Docker的连接

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

image.png

设置完成后,回到IDEA主界面,可以看到下面多出来一个Docker窗口或者在Services窗口中出现Docker。选中并连接Docker,连接上后显示Containers和Images就是我们现在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,输入配置名、容器名、端口绑定等。

image.png

image.png

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

image.png

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

点击运行,我们会发现项目已经启动成功了,在右侧还可以查看日志等信息,非常方便。

image.png

5. 使用Docker Compose构建镜像

如果我们的项目需要连接数据库或者缓存,那么可以使用Docker Compose把项目和数据库同时构建。

在项目根目录下创建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


孙华栋
27 声望1 粉丝