docker 将jar包生成镜像并将宿主机目录挂载

实现原理

先利用jar包生成一个镜像文件,然后docker启动即可

编写dockerfile

# 基础镜像 
# 指定要构建的spring boot服务镜像的基础源镜像是java,版本是8;如果本地没有java:8的镜像,就会从dockerHub下载。一般首次下载,以后就不会下载了。
FROM  openjdk:8-jre
# author
MAINTAINER dwl
# 时区问题 解决docker 容器中的时候和宿主机统一
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# jar包挂载目录
VOLUME /app/sh
# 创建目录
RUN mkdir -p /app/sh
# 宿主机文件挂载目录
VOLUME /home/kxyjy
# 指定路径
WORKDIR /app/sh
# 复制jar文件到路径
COPY ./sh-modules-alarm.jar /app/sh/sh-modules-alarm.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","sh-modules-alarm.jar"]

构建镜像

docker build -t sh-alarm:1.0.0 .

启动容器

运行该镜像

docker run --name sh-alarm -d -v /home/kxyjy:/home/kxyjy --privileged=true --network=host 23ea

参数说明
1、
Docker运行一个容器后,进入容器,cd /home/kxyjy 挂载目录会报错

cannot open directory '.': Permission denied

解决办法:
docker run时加一个参数

--privileged=true

若是用DockerCompose启动,则在docker-compose.yml中添加以下配置

privileged: true

2、-v /home/kxyjy:/home/kxyjy
容器挂载在宿主机的目录

3、–network=host
指向宿主机ip

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值