Docker

简介: 本文介绍Docker基础操作,涵盖镜像打包、容器管理及Dockerfile编写。通过示例演示如何基于Ubuntu镜像构建Java运行环境,打包Spring Boot应用(linuxDemo.jar),并实现容器化部署与端口映射,最终验证服务运行状态,适合初学者快速掌握Docker核心技能。(239字)

对于docker知识体系还不熟悉的可以参照:Docker教程,涉及知识点如下
镜像知识:打包镜像、查看镜像
容器知识:查看容器、启动容器、查看日志
dockerfile知识:编写dockerfile,自定义构建镜像
1.镜像打包
1.工程打jar包
步骤同:Linux打包部署,这里我直接提供打好的jar包以节约时间:
linuxDemo.jar
(16.7 MB)
2.编写dockerfile文件
dockerfile文件的编写原理:Docker教程 中的“3.DockerFile自定义镜像”,这里我们编写如下:
XML
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

指定基础镜像

FROM ubuntu:16.04

配置环境变量,JDK的安装目录

ENV JAVA_DIR=/tmp/linux

拷贝jdk和java项目的包

COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./linuxDemo.jar /tmp/app.jar

安装JDK

RUN cd $JAVA_DIR \
&& tar -xf ./jdk8.tar.gz \
&& mv ./jdk1.8.0_144 ./java8

配置环境变量

ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

暴露端口

EXPOSE 8090

入口,java项目的启动命令

ENTRYPOINT java -jar /tmp/app.jar
2.生成镜像
完整文件如下:
jdk8.tar.gz
(176.9 MB)
linuxDemo.jar
(16.7 MB)
这里我因为基础版本拉取失败,所以将JDK一起打包进去了,所以文件比较大
注意:上述命令执行路径:在对应DockerFile所在路径image.png

3.运行容器
这里必须做端口映射,否则容器内端口我们是无法访问到,必须映射到宿主机image.png

4.验证心跳image.png

相关文章
|
8月前
|
关系型数据库 MySQL Java
分布式事务终极指南:2PC/XA/TCC/SAGA 从底层原理到生产选型全拆解
本文系统解析分布式事务四大主流方案:XA/2PC(强一致但性能差)、TCC(高并发柔性事务)、SAGA(长事务最终一致)及理论基石(ACID/CAP/BASE),涵盖原理、流程、实战代码、优劣对比与生产选型标准,助你深入掌握核心逻辑。
1436 3
|
6月前
|
缓存 监控 NoSQL
【Redis】Redis缓存三大核心问题:缓存穿透 / 击穿 / 雪崩(原因 + 解决方案)
本文系统解析Redis缓存三大高危问题:**穿透**(查不存在数据)、**击穿**(热点Key过期瞬间并发压库)、**雪崩**(大量Key集中失效或集群宕机)。深入剖析根因,提供分层防护方案——布隆过滤器+参数校验防穿透、永不过期+本地缓存防击穿、过期打散+高可用架构防雪崩,并强调全链路兜底与生产避坑要点。
1225 2
|
8月前
|
存储 安全 Java
别让你的 Java 应用裸奔!OWASP Top10 全漏洞原理、复现与一站式防护方案
本文详解Java应用十大安全风险(OWASP Top10),涵盖失效访问控制、加密失效、注入攻击等核心漏洞的原理、复现代码及防护方案,结合Spring生态最佳实践,助力开发者构建高安全性企业级系统。
1157 1
|
11月前
|
人工智能 API 对象存储
在阿里云 ESA Pages 上部署开源导航系统 HiCyou 及 OSS 迁移计划
HiCyou 是一个开源的 SaaS 与 AI 工具发现平台,基于 Next.js 构建,实时聚合全球新品。本文介绍如何将其部署至阿里云 ESA Pages 边缘网络,并逐步迁移 Cloudflare R2 存储至阿里云 OSS,提升国内访问速度与系统集成度,助力平台全面拥抱阿里云生态。(238 字)
1067 3
|
11月前
|
设计模式 Java 程序员
推荐书籍
推荐多本Java经典书籍:《Head First Java》适合入门,《Java核心技术》深入巩固基础,《Java编程思想》整合设计模式,适合进阶。并发方面有《Java并发编程之美》等,JVM推荐《深入理解Java虚拟机》与《实战JVM》。体系全面,适合不同阶段学习。
|
11月前
|
负载均衡 算法 Java
微服务篇
SpringBoot核心原理是自动装配,通过@SpringBootApplication注解实现配置类、组件扫描与自动配置。其启动流程包括环境初始化、上下文创建与自动化配置。常用起步依赖如web、redis等;支持properties、YAML等配置文件,后加载的覆盖先加载的。项目通过Feign、Ribbon实现服务通信与负载均衡,使用Nacos做注册与配置中心,Sentinel或Hystrix实现限流熔断,Gateway实现网关限流与CORS跨域控制,结合Spring Cloud五大组件构建微服务架构。
|
11月前
|
缓存 开发工具 git
QLExpress使用及源码分析
QLExpress是阿里开源的轻量级规则引擎,支持通过注解与YAML配置实现业务逻辑与代码解耦。结合实体别名、接口规则定义及脚本化表达式,实现动态计算与判断,如用户年龄判断、BMI计算等。支持AST语法树解析与上下文绑定,提供灵活的二次扩展能力,适用于复杂业务场景的延迟执行与缓存优化。
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
存储 JavaScript 安全
Vue 3 环境变量配置
Vue 3 环境变量配置