1.maven引入打包所需依赖
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.在项目根目录下,创建Dockerfile的文本文件,并将以下内容添加到文件中:
# 基础镜像
FROM openjdk:8-jre
# author(作者)
LABEL maintainer="Dinopell"
# 将主机上的目录挂载到容器中。可以用来在容器外部和容器内部共享数据。
VOLUME /home/project
# 容器内部创建一个目录,该目录不存在,则创建之;如果已存在,则忽略
RUN mkdir -p /home/project
# 设置容器的工作目录为/home/luo,之后的工作路径都相对于这个目录。
WORKDIR /home/project
# 将主机上的.jar文件复制到容器内的工作路径下。
COPY ./project_jar_name.jar /home/project
#下面也也可增加复制配置文件到同级路径下
COPY ./dinopell-modules-product.jar /home/dinopell/product-service
# 启动认证服务
ENTRYPOINT ["java","-jar","project_jar_name.jar"]
#Data-Transmission.jar是你要打包的jar包的文件名。
3.注意
[注意]: . 必须要有
docker build -t product .
如果要给此镜像一个版本号那就用这个语句:
其中,“your-image-name”是镜像名称,“1.0”是版本号,“.”表示Dockerfile文件在当前目录中。
docker build -t product:1.0 .
4.执行以下命令把镜像启动容器:
其中,-p参数用于指定容器内部端口映射到主机的端口,8080:8080表示将容器内部的8080端口映射到主机的8080端口上。-d参数用于指定容器在后台运行。
【如果有版本,启动docker要加上版本】
docker run -d -p 9207:9207 product:1.0
第一个端口号是主机(本地)端口号,后面的端口号是服务器内部端口号
docker images
docker ps -a
docker stop 容器id
docker rm 容器id
docker ps -a
docker rmi -f 镜像id
5.docker pa -a 查看有没有所打包的项目
docker start ff0490c45224启动
docker images 查看镜像
5.之后就可以正常访问