1)Spring Boot 项目添加 Docker 支持
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
</plugins>
</build>
2) 添加 jdk , maven 环境变量。
3)安装 Docker 环境
a)安装
yum install docker
b)安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动
service docker start
chkconfig docker on
#LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service
c)使用Docker 中国加速器
vi /etc/docker/daemon.json
#添加后:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
d)重新启动docker
systemctl restart docker
输入docker version
返回版本信息则安装正常。
4) 使用 Docker 部署 Spring Boot 项目
将项目 spring-boot-docker
拷贝服务器中,进入项目路径下进行打包测试。
#打包
mvn package
#启动
java -jar target/demo-spring-boot-1.0.jar
创建 Dockerfile 文件,并将*.jar 文件放在同一个文件夹下(最好单独放一起)。例如:
# 基础镜像使用Java
FROM java:8
# 作者
MAINTAINER lr
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 指定容器需要映射到主机的端口
EXPOSE 8080
执行镜像构建命令
**docker image build -t demo-springboot . // 镜像名随意,注意最后有一个点**
查看docker 构建的镜像中是否存在demo-springboot
docker images
运行镜像
docker run -p8080:8089 -d demo-springboot
其中: 1) -p外部端口号:内部端口号
2) -d 后台运行