Docker

简介: 本文介绍了Docker的基础知识和使用方法,包括镜像打包、容器操作、Dockerfile编写及自定义构建镜像等内容。通过实际案例演示了如何将Java项目打包为JAR文件,并创建Docker镜像运行容器,最终验证服务运行状态。适合初学者快速掌握Docker核心技能。

对于docker知识体系还不熟悉的可以参照:Docker教程,涉及知识点如下

  • 镜像知识:打包镜像、查看镜像
  • 容器知识:查看容器、启动容器、查看日志
  • dockerfile知识:编写dockerfile,自定义构建镜像

1.镜像打包

1.工程打jar包

步骤同:Linux打包部署,这里我直接提供打好的jar包以节约时间:📎linuxDemo.jar

2.编写dockerfile文件

dockerfile文件的编写原理:Docker教程 中的“3.DockerFile自定义镜像”,这里我们编写如下:

# 指定基础镜像
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📎linuxDemo.jar

image.png

这里我因为基础版本拉取失败,所以将JDK一起打包进去了,所以文件比较大

image.png

  • 注意:上述命令执行路径:在对应DockerFile所在路径

3.运行容器

  • 这里必须做端口映射,否则容器内端口我们是无法访问到,必须映射到宿主机

image.png

4.验证心跳

image.png

目录
相关文章
|
8月前
|
存储 Linux 网络安全
深入浅出Docker
Docker是一种基于容器技术的开源平台,用于自动化应用的部署、扩展和管理。其核心组件包括镜像(Image)、容器(Container)和仓库(Registry)。镜像是静态只读模板,采用分层存储结构;容器是镜像的运行实例,通过Linux Namespace和Cgroups实现隔离与资源限制;仓库用于集中存储和分发镜像。Docker支持数据持久化(Volumes)、多种网络配置(如Bridge、Host、Overlay等)以及高效的操作命令,帮助企业实现快速开发、测试和部署流程。
|
7月前
|
文件存储 Docker CDN
Docker 镜像源可用列表
本文介绍了多个可用的Docker Hub镜像加速站点,定期更新确保运营维护,可免费使用且拉取速度快、稳定性高。支持群晖、极空间等主流NAS厂商,部分厂商已内置该镜像源。同时提供镜像加速配置方法及一键安装Docker和Docker-Compose命令,适用于各大云服务商和本地部署场景。
2707 2
|
4月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
435 2
|
7月前
|
安全 Linux 虚拟化
VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件
VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件
365 1
VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件
|
Docker 容器
docker设置国内镜像源
docker设置国内镜像源
41093 5
|
关系型数据库 应用服务中间件 nginx
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
|
Unix Docker 容器
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker
2063 0