SpringBoot部署项目到Docker仓库
1.开启远程控制端口
-
Centos7开启方式:
vim /lib/systemd/system/docker.service
找到ExecStart
行ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
-
重启docker
启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo service docker restart 关闭docker service docker stop 关闭docker systemctl stop docker
2.创建springboot项目
-
利用IDEA快速创建springboot项目:
- 添加测试Controller
3.配置项目构建信息
- 在
pom.xml
文件中配置如下:
<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>
<!-- docker私服的地址 -->
<dockerHost>http://192.168.101.205:2375</dockerHost>
<!--镜像名称以及版本号-->
<imageName>spring-boot-docker:1.1.1</imageName>
<!--依赖的基础镜像-->
<baseImage>java</baseImage>
<!--Dockerfile的位置 -->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
</plugins>
</build>
说明:
-
<dockerHost>http://192.168.101.205:2375</dockerHost>
就是docker服务器地址 -
<imageName>spring-boot-docker:1.1.1</imageName>
构建后的docker image的name与tag -
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
指定Dockerfile文件位置
4.编辑Dockerfile
FROM java:8
MAINTAINER haopeng 18802953162@163.com
VOLUME /home/haopeng
ADD docker_base-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
- 另外项目端口需要改为8080
- 对Dockerfile里面的内容做一个简单的介绍:
1.FROM:指明当前镜像继承的基镜像,编译当前镜像时候会自动下载基镜像
2.MAINTAINER:当前镜像的作者和邮箱,使用空格隔开
3.VOLUME:挂载目录
4.ADD:从当前工作目录复制文件到镜像目录中并重新命名
5.RUN:在当前镜像上执行Linux命令,这里我执行了2个run指令
6.EXPOSE:监听的端口号
7.ENTRYPOINT:让容器像一个可执行程序一样运行
5.构建Docker镜像
-
执行
mvn clean package -DskipTests docker:build
-
控制台出现
BUILD SUCCESS
标识构建成功
6.运行docker镜像
- 连接到docker服务器
docker images
可以看到刚刚构建的镜像 - 执行
docker run -d -p 8080:8080 --name docker-app spring-boot-docker:1.1.1
- 返回容器id表示运行成功
-
打开浏览器输入宿主机+端口访问项目
网友评论