docker构建镜像与运行

该博客介绍了如何使用Docker构建基于openjdk:8-jre-alpine的基础镜像,并编写Dockerfile来部署spring应用。详细步骤包括复制jar和配置文件到容器,声明端口,挂载目录,以及如何运行容器并进行持久化设置。此外,还涵盖了如何删除和重新构建镜像,以及如何进入容器内部进行操作。
摘要由CSDN通过智能技术生成

原生docker:
首先准备基础镜像,这里用的是已有的jdk8的镜像:openjdk:8-jre-alpine
然后写Dockerfile文件

#使用基础镜像openjdk:8-jre-alpine
FROM openjdk:8-jre-alpine
#将Dockerfile文件目录下的spring-test-1.0.0-SNAPSHOT.jar拷贝到容器的内部路径/app下
COPY ./spring-test1.0.0-SNAPSHOT.jar /appspring-test-1.0.0-SNAPSHOT.jar
COPY ./applications.properties /app/applications.properties

#挂载目录/data/logs  (不持久化)
VOLUME /data/logs
#申明端口9999,方便持久化挂载之类的
EXPOSE 9999
#启动时执行命令
CMD ["java" ,"-jar" "-Dlog.path=/data/logs" ,"/app/spring-test-1.0.0-SNAPSHOT.jar"]

完成后执行docker build -t spring/test .
后面的.表示当前目录下的Dockerfile文件
表示构建镜像名称为spring/test,会自动打上标签spring/test:latest
也可以通过docker tag spring/test:latest spring/test:V1为这个镜像打个新的标签v1

上传镜像到仓库:docker push spring/test:latest
运行镜像容器:docker run -d -p 9998:9999 spring/test:latest -v /data/devops/logs:/data/logs
-d表示后台运行
-p表示端口映射:将容器的9999端口映射到物理主机的9998端口
-v表示磁盘挂载:将容器中的/data/logs目录挂载到宿主机的/data/devops/logs这样就可以持久化了,
    也就是容器停止后这个目录依然存在


因为dockerfile文件中运行命令没有指定applications.properties的参数,这里需要加上然后重新构建
首先删除运行过的容器
docker ps -a 列出所有容器
然后执行 docker rm containtsid
删除后删除镜像
docker images 找到相应的镜像
执行 docker rmi imageid
然后修改Dockerfile文件重新构建
重新执行docker run -d -p 9998:9999 spring/test:latest
通过docker ps 可以看到我们运行的容器可以得到容器id:895140419e18

然后通过docker exec -it 895140419e18 /bin/bash进入到容器内部的命令行

前端打包:

# Base images 基础镜像
FROM nginx:stable
 
#MAINTAINER 维护者信息
MAINTAINER orange

COPY /build /usr/share/nginx/
COPY /build/static /usr/share/nginx/orange/static/

RUN rm /etc/nginx/conf.d/default.conf


#EXPOSE 映射端口
#EXPOSE 80
 
#CMD 运行以下命令
#CMD ["nginx"]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值