前言
1.服务器已经安装docker。
步骤
1.修改docker的配置
编辑 /usr/lib/systemd/system/docker.service 文件。设置docker允许远程访问。
vim /usr/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 daemon-reload
systemctl restart docker
2.IDEA配置
1.先建立一个测试的springboot项目
2.较高版本的idea已经支持docker了,如果没有就安装插件。
打开设置,找到docker添加docker,docker的Engine API URL 为:tcp://ip:2375
3.配置docker仓库,可以配置成阿里云的,阿里云的每个人不一样,有独有的地址,自己可以去弄一个,我这里配置成网易的:
http://hub-mirror.c.163.com
4.配置完idea面板下面就会出现docker,可以双击连接,然后就可以镜像和容器进行各种操作。
3.修改pom文件
添加properties,设置docker镜像的前缀。可以设置成公司名称等
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
添加插件:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--镜像名称-->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--基础镜像jdk1.8-->
<baseImage>java</baseImage>
<!--制作者提供本人信息-->
<maintainer>company.com</maintainer>
<!--切换到/ROOT目录-->
<workdir>/ROOT</workdir>
<cmd>["java","-version"]</cmd>
<entryPoint>["java","-jar","${project.build.finalName}.jar"]</entryPoint>
<!--指定Dockerfile路径<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->
<!--指定远程docker api地址此处未加CA加密认证。-->
<dockerHost>http://ip:2375</dockerHost>
<!--这里是复制jar包到docker容器指定目录配置-->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
<directory>${project.build.directory}
</directory>
<!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<!--当执行mvnpackage时,执行:mvncleanpackagedocker:build-->
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
4.执行打包
打包的之后就会自动进行镜像的创建
docker面板中就可以看到增加了一个镜像
使用镜像创建容器
设置容器名称,端口映射,目录挂载等
点击run之后,创建成功,然后就可以访问项目了。
总结
1.使用docker自动化部署,就很方便。
2.欢迎互相学习,交流讨论,本人的微信:huangchuanxiaa。