docker部署springboot项目并访问宿主机文件
--本文主要记录docker部署项目过程以及访问宿主机文件资源的方式一、手动部署需要提前说明的是,本人的开发环境为Window环境,而生产环境为Centos,所以对应的文件路径也需要区分。1、第一步是配置文件的配置(配置内容仅作为举例)application.ymlspring:profiles:active: dev---spring:profiles:active: prodapplicati
--本文主要记录docker部署项目过程以及访问宿主机文件资源的方式
一、手动部署
需要提前说明的是,本人的开发环境为Window环境,而生产环境为Centos,所以对应的文件路径也需要区分。
1、第一步是配置文件的配置(配置内容仅作为举例)
application.yml
spring:
profiles:
active: dev
---
spring:
profiles:
active: prod
application-dev.yml
#application-dev.yml 项目环境为Windows
app:
#映射路径
doc-base: E:/image/
application-prod.yml
#application-prod.yml 项目环境为Centos
app:
doc-base: /usr/image/
2、打包文件
通过maven将项目打包成.jar文件
3、Dockerfile编写
FROM java:alpine
VOLUME /tmp
ADD app-0.0.1-SNAPSHOT.jar app.jar
#"-c"清除以前启动的数据
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod","-c"]
4、创建docker目录并将项目文件和dockerfile添加进去
#docker可创建在任何地方,当然放在方便的位置更好,例如放到~根路径下
mkdir docker
#文件可以通过连接工具复制过去,例如SecureCRT
5、制作docker镜像
#进入docker目录下 --> 注意最后有一个点 .
docker build -t app .
6、创建好项目中我们需要使用到的文件路径 /usr/image/
cd /usr
mkdir image
#通过SecureCRT复制文件
7、运行容器并挂载文件目录
想要通过docker访问宿主机文件需要通过路径挂载的方式进行访问
#-v 挂载操作,冒号前为宿主机对应的路径,后者为容器中的路径
docker run -t --name app -p 8080:8080 -v /usr/image/:/usr/image app
可通过以下命令查看容器中挂载目录信息
docker inspect app | grep Mounts -A 20
进入容器中查看
docker exec -it app sh
发现成功将宿主机中的文件挂载到容器中
到这里我们就可以直接在浏览器访问我们的图片资源了,注意需要开放我们的项目端口,没有开放的可以执行以下命令
#查看防火墙状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#查看开放的端口
firewall-cmd --list-ports
#开放某个端口 --permanent作用是使其永久有效,重启后还有效
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#最后记得重启防火墙
firewall-cmd --reload
二、IDEA集成Docker并部署
注意:以下的一系列操作仅适合内网操作,如果是外网IP或域名不要这样操作,否则很快就会被黑客攻击到,一般采用CA证书进行访问,详情请自行百度
1、docker配置文件修改
#进入docker.service编辑模式
vi /lib/systemd/system/docker.service
#注释以下行
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#改为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
#保存并退出
#更新配置文件
systemctl deamon-reload
#重启docker服务
systemctl restart docker.service
在防火墙开放以上配置的2375端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
2、idea连接docker
3、pom文件添加plugin配置
<!--docker镜像build插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="src/main/docker"
file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<version>1.8</version>
</plugin>
4、编写dockerfile文件(docker文件参照开始部分)
5、配置容器启动参数(注意需要添加环境参数TZ=Asia/Shanghai不然时区会不一致)
至此idea上docker的集成工作已经完成,接下来就进行打包操作,然后运行docker就行了
通过idea进行项目部署会方便很多,不需要每次手动更新。
更多推荐
所有评论(0)