注意:docker的安装自行百度,比较简单;准备springboot项目;
方式1 单独jar包和Dockerfile文件a、准备springboot的jar包,比如hello-0.0.1-SNAPSHOT.jar;
b、建立一个Dockerfile文件:
FROM java:8 #必须,以该镜像为基础镜像,可更改 VOLUME /temp #创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等 ADD hello-0.0.1-SNAPSHOT.jar /app-docker.jar #将文件从路径添加到app-docker.jar # RUN sh -c 'touch /app-docker.jar' ENV JAVA_OPTS="" #可以用于为docker容器设置环境变量 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app-docker.jar"] #ENTRYPOINT 指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件
备注:CMD 和 ENTRYPOINT 都能用来指定开始运行的程序,而且这两个命令都有两种不用的语法:CMD [“ls”,‘’-l"]或者CMD ls -l
c、将jar包和Dockerfile文件放在具有docker环境的任意目录下,执行构建命令:
docker build -t app-docker .
输出:Successfully…略
d、可用docker imagesml查看app-docker镜像,接着用以下命令启动:
docker run -d -p 8080:8080 --name app-docker app-docker
启动结果:63078a8e5bd6e6d7123f5d24d73818821495b0c29790473be726287d68526468 成功
方式二 Docker远程连接并且使用idea一键部署a、配置docker远程连接端口
首先编辑我们服务器上的docker文件:
vi /usr/lib/systemd/system/docker.service
修改以ExecStart开头的行(centos 7):添加
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
b、重启docker
systemctl daemon-reload service docker restart
重启之后测试远程连接是否正常,这里的2375是之前配置的端口:
curl http://localhost:2375/version
c、开启端口,或者关闭防火墙,二者选其一即可
firewall-cmd --zone=public --add-port=2375/tcp --permanent chkconfig iptables off
d、使用idea连接到docker,下载docker插件,idea2019自带了docker插件。如果没有插件可以选择安装docker插件;
e、docker-maven-plugin 介绍
在我们持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin 插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中。
pom.xml:
${project.artifactId} org.springframework.boot spring-boot-maven-plugin true org.apache.maven.plugins maven-surefire-plugin true com.spotify docker-maven-plugin 1.0.0 build-image package build bruceliu/${project.artifactId} latest java bruceliu@email.com /ROOT ["java", "-version"] ["java", "-jar", "/${project.build.finalName}.jar"] http://127.0.0.1:2375 / ${project.build.directory} ${project.build.finalName}.jar
f、结束



