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 守护进程重启
- systemctl restart docker 重启docker服务
- sudo service docker restart 重启docker服务
- service docker stop 关闭docker
- systemctl stop docker 关闭docker
2.来到自己的springboot项目(就一个简单的helloword)
3.配置项目构建信息
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- tag::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!-- docker私服的地址 -->
<dockerHost>http://xxxxxx:2375</dockerHost>
<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>
<!-- end::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 xierfei 1308207524@qq.com
# 定义数据卷位置---存放容器共享文件的位置
VOLUME /home/tmp
ADD *.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
#指定配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
注意:项目端口需要改为8080
5.构建Docker镜像
执行 mvn clean package -DskipTests docker:build
我就用最简单的mvn clean package docker:build
Maven中-DskipTests和-Dmaven.test.skip=true的区别自行百度
控制台出现 BUILD SUCCESS 标识构建成功
6.运行docker镜像
连接到docker服务器docker images可以看到刚刚构建的镜像
执行 docker run -d --name springboot-hello -p 8080:8080 springboot/test
返回容器id表示运行成功
打开浏览器输入宿主机+端口访问项目
(完)