制作docker过程记录
制作build的tar包
安装docker
主服务器需按装docker version:19.03.12
编写Dockerfile
# OpenJDK 11 镜像作为基础镜像
FROM dragonwell-registry.cn-hangzhou.cr.aliyuncs.com/dragonwell/dragonwell:11
# 安装常用基础命令
ENV LANG=C.UTF-8 TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 创建一个工作目录
WORKDIR /app
# 将本地的 JAR 文件添加到容器中,并更名为app.jar
ADD riil-project-1.0.0-SNAPSHOT.jar app.jar
# 暴露 Spring Boot 应用运行的端口号
EXPOSE 8088
# 定义容器启动时运行的命令
ENTRYPOINT ["nohup","java", "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED","-jar", "app.jar"]
上传文件
将Dockerfile和riil-project-1.0.0-SNAPSHOT.jar文件上传至同一文件夹(riil-project-docker)中
打包成镜像
在riil-project-docker目录下执行 Dockerfile ,将其打成镜像
docker build -t project-docker:1.0.0 .
# 或者
docker build -t project-docker:1.0.0 -f Dockerfile .
查看是否成功打成镜像
运行镜像
docker run -d -e HOSTNAME=172.17.163.197 -p 8080:8088 --name project-docker --restart=always project-docker:1.0.0
参数解析: docker run ==> 执行运行命令 -d ==> 表示后台运行 -p ==> 端口映射【外部访问的端口】:【容器提供服务的端口】 -e ==> 环境变量设置(需要设置一个HOSTNAME的环境变量) --name ==> 运行镜像后的容器名称 --restart ==> always无论退出状态如何,总是重启 --- 可作为自启动使用 project-docker:1.0.0 ==> 运行镜像及版本
使用命令查看容器运行状态
也可以使用http://IP:8080验证
打包成tar
docker save -o project-docker.tar project-docker:1.0.0
移植使用
load压缩tar包成为镜像
docker load -i project-docker.tar
查看镜像
运行镜像
docker run -d -e HOSTNAME=172.17.162.146 -p 8080:8088 --name project-docker --restart=always project-docker:1.0.0
其他
停用docker容器
# 查看容器ID
docker ps | grep project-docker
# 停用容器
docker rm -f bdf0071217e7
删除image镜像
# 查看镜像ID
docker images | grep project-docker
# 停用容器
docker rmi -f bdf0071217e7
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义