一、安装Docker
Docker的安装请参考 https://blog.csdn.net/kevinyankai/article/details/80227364,具体步骤这里就略过
我的系统是CentOS 7,安装了宝塔7.0.2。
- Docker版本
- 查看下Docker的宿主机IP地址
- 开启Docker的远程访问
执行如下命令:
sudo vi /lib/systemd/system/docker.service
修改以ExecStart开头的内容如下图红框内所示
这里我将端口号设置为2375。然后重启docker服务 :
systemctl daemon-reload
service docker restart
在宝塔安全设置中开启2375端口
然后测试是否可以连接到docker api
如果是在CentOS 7下远程连接有问题,可以尝试如下配置:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
二、IntelliJ IDEA中安装Docker integration插件
我的IDEA版本为2019.2
- 安装插件
在IDEA中打开File -> Settings...菜单,在插件市场中搜索Docker插件,并安装
- 配置连接Docker服务端
其中Engine API URL处的地址为Docker服务端的IP地址,也就是前面执行ifconfig时显示的IP地址。
连接成功,如下所示
三、项目配置
- 创建Dockerfile
在项目的bin目录下创建docker目录,并创建Dockerfile文件,内容如下:
FROM frolvlad/alpine-java:jdk8-slim
#FROM frolvlad/alpine-oraclejdk8-slim
MAINTAINER QySoft@163.com
ENV TZ "Asia/Shanghai"
ENV LANG C.UTF-8
VOLUME /tmp
WORKDIR /app
ADD target/web.war .
RUN jar -xvf web.war
# RUN chmod -R 755 ./*
ADD bin/docker/application-prod.yml ./classes/config
ENV JAVA_OPTS "-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"
ENV JAVA_OPTS "$JAVA_OPTS -Dspring.profiles.active=prod"
ENTRYPOINT java -cp /app $JAVA_OPTS org.springframework.boot.loader.WarLauncher
EXPOSE 8980
在项目bin目录下创建applicatoin-prod.yml SpringBoot项目配置文件,具体内容根据项目不同自行设置,如配置实际的数据库地址等。
- 创建运行/调试的配置项
具体配置内容如下:
Server: 选择前面配置的Docker服务端连接
Dockerfile: Dockerfile文件所在位置
Context folder: 执行Dockerfile文件时的上下文环境。这个路径一定要注意,写错了会导致执行Dockerfile错误,比如会找不到要拷贝的文件等。
Image tag: 发布到服务端后镜像的标签,可随便填写
Container name: 发布后运行时docker容器的名字
Bind ports: 运行时绑定的端口号
四、发布并运行项目
- 编译项目
Build项目,在target目录下生成web.war包
- 连接docker服务端
前面的docker服务器配置成功后,在service视图中即可看到服务端列表,选择要启动的docker服务端,点击绿色箭头启动
启动成功后即可看见服务端的所有镜像和容器
- 执行Dockerfile,发布并运行项目
执行Docker启动/调试配置项,开始执行Dockerfile,创建镜像,容器并运行容器
启动成功后如下图所示: