pom 文件
<groupId>com.vipsoft.boot</groupId> <artifactId>vipsoft-web-boot</artifactId> <version>1.0</version> <packaging>jar</packaging> <!-- 統一管理 jar 包版本 --> <properties> <boot.version>2.2.8.RELEASE</boot.version> <java.version>1.8</java.version> <docker.image.prefix>vipsoft</docker.image.prefix> </properties> <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.2.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>
編輯 Dockerfile 文件
# Docker image for SpringBoot file run # VERSION 0.0.1 # Author: eangulee # 基礎鏡像使用java FROM java:8 # 作者 MAINTAINER Jimmy <Jimmy.Chen@vipsoft.com.cn> # VOLUME 指定了臨時文件目錄為/tmp。 # 其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,並鏈接到容器的/tmp VOLUME /tmp # 將jar包添加到容器中並更名為app.jar ADD vipsoft-web-boot-1.0.jar app.jar # 運行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.將編譯好的jar包和 dockerfile 傳到服務器上,我這邊用的目錄為 /opt/vipsoft
#sftp > put 本地文件路徑 遠程服務器路徑 sftp> put /Users/jimmy/Projects/VipBoot/VipSoft-Web-Boot/src/main/docker/Dockerfile /opt/vipsoft sftp> put /Users/jimmy/Projects/VipBoot/VipSoft-Web-Boot/target/vipsoft-web-boot-1.0.jar /opt/vipsoft
編譯docker 文件
[root@centos-linux vipsoft]# docker build -t vipsoft .
#運行 docker [root@centos-linux vipsoft]# docker run --name vipsoft8081 -d -p 8081:8080 vipsoft --name 容器名稱,后面停止、啟動、刪除,都可以直接用這個名字 -d 參數是讓容器后台運行 -p 是做端口映射,此時將服務器中的8080端口(對外訪問端口)映射到容器中的8080端口(項目設置端口)
訪問測試