文档简述

  1. Linux环境下安装Docker,并且开启外部访问2375端口
  2. Idea项目的根目录编辑DOCKERFILE文件
    1. 注意: FROM 引用的镜像,linux下docker需要pull拉取该镜像
  3. Idea项目配置war打包方式改为jar方式
  4. Idea配置Docker插件,并设置远程docker的服务地址

Docker

Linux下Docker的安装

参考博客:Linux docker 环境搭建

配置Docker的镜像加速此处不予赘述

安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2 

安装Docker-CE

yum install -y docker-ce 

启动Docker

systemctl enable docker
systemctl start docker

Docker开放外部访问端口

编辑配置文件vim /usr/lib/systemd/system/docker.service

ExecStart新增如下配置

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

防火墙开放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

重启docker

systemctl restart docker

验证端口开启结果

telnet 127.0.0.1 2375

Idea

安装Docker插件

安装Docker插件

配置Docker远程地址

编辑DOCKERFILE文件

# 基础镜像使用Java
FROM openjdk:8-jre-alpine
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
#日志文件目录
VOLUME /usr/local/services/logs
# 将jar包添加到容器中并更名为app.jar
ADD module_web/target/ylf_pay.jar app.jar
ENTRYPOINT ["java","-Xmx500m","-jar","-Dspring.profiles.active=dev","app.jar"]
# 指定容器需要映射到主机的端口
EXPOSE 9090

参考博客-扫盲: Docker EXPOSE指令详解

查看docker容器下的日志

进入容器的命令模式

docker exec -it `容器id` /bin/sh

退出

exit

打包部署镜像

Idea打包项目为jar包

在项目对外发布web模块的build需要指定application入口类

<build>
<finalName>ylf_pay</finalName>

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--指定唯一入口类,也就是Application的位置-->
<mainClass>org.jumutang.com.Application</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>

</plugins>

</build>

Idea部署镜像

需要先打包jar,在运行docker部署镜像。报错:找不到jar文件!!!

Idea-Docker插件’>’启动时会默认创建容器启动(自行关闭后续通过命令指定参数启动)

部署执行完成后,可在linux下查看到镜像文件

部署运行

Linux下运行

linux下命令

docker run -d -p 8283:8283 --name ylfpay_docker ylfpay
  • -d 后台启动
  • -p 暴露端口:内部端口
  • –name 部署容器名称

镜像打包推送远程服务

例如:小程序云

错误排查

Docker镜像启动失败查询日志

docker logs 容器Id