Dockerfile使用-集成JAVA Python Redis Tomcat Nginx镜像,Based on Ubuntu18.04

Docker容器回顾之运维篇 背景 接上一篇《Docker复习之部署篇》,本文继续对Docker之日常维护常用操作做回顾总结。 操作命令 2.1 Docker 容器查看 首先,管理员对docker做日常维护,需要了解现有环境有多少docker实例,并连接进入docker实例虚拟机进行对应的管理维护; 我们执行 docker ps 命令来查看容器名称:docker ps -a或docker ps //显示当前正在运行的容器,输出如下: 参数概览: 示例: 1)显示最后被创建的容器:docker ps -l //相当于 dock 阅读详情
镜像信息
  • Based on ubuntu18.04

  • Environment

    • jdk8 >> apt install -y openjdk-8-jdk
    • tomcat7 >> install dir:/opt/tomcat-7.0.96
    • python3.7 >> install dir:/opt/Python-3.7.4
    • nginx1.14 >> apt-get install -y nginx
    • redis5.0.5 >> install dir:/opt/redis-5.0.5
  • general-tools

    • vim >> apt-get install -y vim
    • net-tools >> apt-get install -y net-tools
    • curl >> apt install -y curl
    • cron >> apt-get install -y cron
    • inetutils-ping >> apt-get install -y inetutils-ping
    • wget >> apt-get install -y wget
Dockerfile
# BASE IMAGE
FROM ubuntu:latest

# tzdata时区
ENV DEBIAN_FRONTEND=noninteractive TIME_ZONE=Asia/Shanghai


# 镜像标签, 起说明作用
LABEL name="Prod Ubuntu" \
	build-data="2019-08-21" \
	maintainer="614580167@qq.com" \
	version="1.0"
	
	
# 添加阿里源
RUN /bin/bash -c awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb http://mirrors.aliyun.com/ubuntu/ {} main multiverse restricted universe \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb http://mirrors.aliyun.com/ubuntu/ {} main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb http://mirrors.aliyun.com/ubuntu/ {}-backports main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb http://mirrors.aliyun.com/ubuntu/ {}-proposed main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb http://mirrors.aliyun.com/ubuntu/ {}-security main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb http://mirrors.aliyun.com/ubuntu/ {}-updates main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb-src http://mirrors.aliyun.com/ubuntu/ {} main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb-src http://mirrors.aliyun.com/ubuntu/ {}-backports main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb-src http://mirrors.aliyun.com/ubuntu/ {}-proposed main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb-src http://mirrors.aliyun.com/ubuntu/ {}-security main multiverse restricted universe >> /etc/apt/sources.list \
	&& awk 'NR==3{print substr($1,18)}' /etc/lsb-release | xargs -I {} echo deb-src http://mirrors.aliyun.com/ubuntu/ {}-updates main multiverse restricted universe >> /etc/apt/sources.list

# 更新源
RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade


# install general-tools
RUN apt-get install -y vim net-tools curl cron inetutils-ping wget lsof

# vi 编辑器显示行号
RUN /bin/bash -c echo 'set nu'>>/etc/vim/vimrc


# 安装python3.7
# 安装相关依赖
RUN apt-get install -y tzdata \
	&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime \
	&& echo $TIME_ZONE > /etc/timezone \
	&& dpkg-reconfigure --frontend $DEBIAN_FRONTEND tzdata \
	&& apt-get install -y gcc make zlib* \
	&& apt-get install -y build-essential python-dev python-setuptools python-pip python-smbus \
	&& apt-get install -y libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev tk-dev libsqlite3-dev \
	&& apt-get install -y libssl-dev openssl libffi-dev
	
WORKDIR /opt/
RUN wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && tar -zxvf Python-3.7.4.tgz
RUN cd /opt/Python-3.7.4 && ./configure && make && make install

# 默认使用python3.7
RUN rm /usr/bin/python 
RUN ln -s /usr/local/bin/python3.7 /usr/bin/python

WORKDIR /opt/
RUN rm Python-3.7.4.tgz


# 安装Tomcat7
RUN cd /opt/ \
 	&& wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.96/bin/apache-tomcat-7.0.96.tar.gz \
 	&& tar -zxvf apache-tomcat-7.0.96.tar.gz \
 	&& mv apache-tomcat-7.0.96 tomcat-7.0.96 \
 	&& rm apache-tomcat-7.0.96.tar.gz
	
# 安装Tomcat7(方式二)
#  编译命令:docker build -f /opt/docker/Dockerfile2 -t ysl_env_tomcat:1.0 /opt/docker/ 
#  其中 命令最后的/opt/docker 指定的是 build 上下文,ADD指令中apache-tomcat-7.0.96.tar.gz 的位置是相对上下文的
# ADD apache-tomcat-7.0.96.tar.gz /opt/
# RUN cd /opt/ && mv apache-tomcat-7.0.96 tomcat-7.0.96


# 配置环境变量
ENV CATALINE_HOME /opt/tomcat-7.0.96
ENV CATALINE_BASE /opt/tomcat-7.0.96
ENV PATH $PATH:$CATALINE_HOME:$CATALINE_HOME/lib:$CATALINE_HOME/bin


# 安装redis
RUN cd /opt/ \
	&& wget http://download.redis.io/releases/redis-5.0.5.tar.gz \
	&& tar -zxvf redis-5.0.5.tar.gz \
	&& cd /opt/redis-5.0.5 \
	&& make \
	&& make install \
	&& cp redis.conf redis.conf.bak \
	&& sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/g' /opt/redis-5.0.5/redis.conf \
	&& sed -i 's/protected-mode yes/protected-mode no/g' /opt/redis-5.0.5/redis.conf \
	&& sed -i 's/daemonize no/daemonize yes/g' /opt/redis-5.0.5/redis.conf \
	&& cd /opt/ \
	&& rm redis-5.0.5.tar.gz


# 安装nginx
RUN apt-get install -y nginx

# 安装java8
RUN apt install -y openjdk-8-jdk


WORKDIR /


# 对外暴露8080端口
# EXPOSE 8080


# 导致新的镜像不能启动
# release info
# ENTRYPOINT echo "\n\n\n\t\t\t\t \
# 				 Welcome to ysl_prod_ubuntu:1.0 (based on Ubuntu 18.04) \n\
# 				 Dockerfile:	https://blog.youkuaiyun.com/github_33809414 \n\
# 				 Build-data:	2019-08-21 \n\
# 				 Support:	614580167@qq.com"

# 避免容器中文乱码
ENV LANG C.UTF-8

# 导致新的镜像不能启动
# ENTRYPOINT ["/bin/echo", "\n\n\n\t\t\t\t"] 
# CMD ["Welcome to ysl_ubuntu:1.0 (based on Ubuntu 18.04) \n\
# 				 Dockerfile:	https://blog.youkuaiyun.com/github_33809414 \n\
# 				 Build-data:	2019-08-21 \n\
# 				 Support:	xxxx@qq.com"]				 


#CMD echo "该指令不会被执行,只会执行最后一条"

# Default command
CMD ["/bin/bash"]

将Dockerfile编译为镜像

docker build -f Dockerfile的路径 -t 镜像名:tag

遇到的问题

1. Dockerfile交互问题
  • 如果是apt安装场合,使用-y 参数解决
    RUN apt-get install -y xxx

  • 安装脚本场合
    比如我们用sh Anaconda3-2019.07-Linux-x86_64.sh来安装anaconda的时候,”烦人”的anaconda会问四个问题,我的回答顺序分别是Enter,yes,Enter,yes。于是你可以这样写:
    RUN sh -c '/bin/echo -e "\nyes\n\nyes" | sh Anaconda3-2019.07-Linux-x86_64.sh'

  • Dockerfile中安装tzdata交互场合

    # 设置环境变量
    ENV DEBIAN_FRONTEND noninteractive # 非交互模式
    ENV TIME_ZONE Asia/Shanghai # 目标时区
    
    # 安装tzdata软件包(默认:Etc/UTC)
    RUN apt-get install -y tzdata 
    
    # 建立到期望的时区的链接(ubuntu16.04以上需要),并且修改/etc/timezone
    RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
    
    # 重新配置tzdata软件包,使得时区设置生效
    RUN dpkg-reconfigure --frontend $DEBIAN_FRONTEND tzdata
    
2. 对【每条指令都是在一个新的容器中执行】的理解
  • 以下指令报错,/bin/sh: 1: ./configure: not found

    WORKDIR /opt/Python-3.7.4
    RUN ./configure
    RUN make
    RUN make install
    

    是因为,在执行RUN ./configure指令时,已经在一个新的容器中了,而在新的容器中没有进入到/opt/Python-3.7.4目录,自然找不到configure

  • 解决方法
    将指令写成一条指令即可RUN cd /opt/Python-3.7.4 && ./configure && make && make install

3. Dockerfile中加入ENTRYPOINT指令,镜像能build成功,但是不能run起来

原因还没有找到,希望大神看到了告知

参考
https://blog.youkuaiyun.com/u014775723/article/details/85213793

Docker与K8S从零到实战:容器编排、部署与故障排查指南 容器化技术已成为现代应用交付的基础,Docker通过镜像实现环境一致性,让应用从开发到生产保持相同行为;而Kubernetes(K8S)作为容器编排平台,则负责大规模Pod的调度、自愈与弹性伸缩。理解两者的关系与分工,是掌握云原生运维能力的关键。在工程实践中,从Linux基础操作、Docker镜像构建、Docker Compose多服务编排,再到K8S集群搭建、Deployment与Service资源管理,每一个环节都需要结合实际部署场景来加深理解。同时,生产环境中的K8S故障排查(如Pod异常、CPU T 阅读详情

相关推荐

在Ubuntu22.04和24.04中安装Docker并安装和配置Java、Mysql、Tomcat

登录阿里云服务器—云服务器ESC—安全组—管理规则—手动添加(授权策略:允许,优先级:1,协议类型:自定义TCP,目的:8080/8080,授权对象:所有IPv4(0.0.0.0/0))如果已经在服务器上开放端口(Tomcat默认端口为8080),以上没有出错就直接可以去浏览器上访问是否有“猫”,访问地址:http://服务器IP:8080。准备条件:在服务器上需要配置安装成功Docter,在阿里云服务器上面产看是否配置端口(8080/8080),如果没有需要配置端口。

灰灰老师 1824

06-使用dockerfile构建nginx、redis镜像

主旨本文使用上一篇文章中说到的dockerfile方式,分别构建一个nginx,一个redis镜像。环境linux环境 docker环境nginx镜像构建创建目录,并切换至对应目录:[yunweijia@localhost ~]$ mkdir -pv docker/nginx mkdir: 已创建目录 "docker" mkdir: 已创建目录 "docker/nginx" [yunweijia@...

ouyangzhenxin的博客 309

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案)

本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。

weixin_28683391的博客 295

关于构建包含python3+jre的基础镜像的文档

因为业务需求的关系,需要通过docker打包一个包含python3和jre的Ubuntu基础镜像,以供aks(可理解为Azure版的k8s)部署服务使用。 一、 准备jre 既然用到了jre,那就需要准备一个jre。思路:1.下载jre(Oracle官网)。2.解压该jre压缩包,删除根目录下文本文件,然后删除其他不必要的文件。 实现:1.下载:去官网下载,搜jre。。。(过程省略)。将下载好的tar包传入远程服务器(可以是scp指令传输...

Xingsihao的博客 527

深入解析DDR5 SDRAM中的CA训练模式(CATM):原理与实现

本文深入解析DDR5 SDRAM中的CA训练模式(CATM),详细探讨其工作原理与实现方法。通过分析JESD79-5标准,揭示CATM在时序校准、信号质量优化和系统稳定性方面的核心价值,并提供硬件设计考量和系统级调试技巧,帮助工程师解决高速内存系统中的信号完整性问题。

weixin_29235923的博客 383

RC电路(一):微分|积分

的取值不同,会导致输出波形和输入波形之间的关系也不同,由此也会产生不同的应用。输出为0,随着电容充满电,运放-输入端得到的分压为正最大值,可等效成一个电压源,且电压不可突变,此时电流反向为最大值,开始充电时的容抗为0,电压不可突变则电压差为0,运放。开始充电时的容抗为0,电压不可突变则电压差为0,运放。输入端得到的分压也不可突变,随着电容放完电,于是。,因电容上电压不能突变(来不及充电,相当于短路,由上分析可得积分运算电路中,输出为运放的负最大峰值,随着电容充满电,输出为运放的正最大峰值,随着电容放完电,

既有随处可栖的江湖,也有追风逐梦的骁勇! 1万+

一个包含了 java环境,mysql,nginx,redis docker 镜像

docker centos7 java 镜像

彻底拆分,一切可控! 1万+

Python爬虫实战教程:如何高效爬取税务局通知通告

税务局发布的通知通告包含政策法规、办税指南、公告信息等,是纳税人、企业合规经营的重要参考。官网发布频率高,手动查看不便,自动爬取并保存,方便信息及时掌握及历史数据归档。本文以合法合规的方式示范,建议实际应用前确认目标网站允许爬取的范围和方式。建议使用pandas进行数据清洗,如去重、空值处理等。对于研究税务政策、进行大数据分析、搭建行业信息平台,爬取税务局通知通告信息尤为关键。公告列表以分页形式展现,包含标题、发布时间和详情页链接。进行政策趋势图、发布频率统计等可视化。爬取公开数据时,务必遵守网站的。

2201_76125261的博客 1780

【Docker】一.制作适用Java项目运行的Docker镜像

docker入门前言Ubuntu中安装docker系统环境功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 入行三年,作为Java工程师,没写过博客就算了,连docker都不会的话就out了。这里将以docker为主题写我的第

qq_39021142的博客 1025

RT-Thread GD32F4xx HWTIMER驱动

GD32F4xx RT-Thread 硬件定时器驱动调试使用记录

madao1234的博客 1481

玩转Docker | 使用Docker部署MediaCMS内容管理系统

玩转Docker | 使用Docker部署MediaCMS内容管理系统

qq_59334230的博客 2916

对于系统架构:从单体到云原生的九阶演进之路

本文系统梳理了从单机架构到千万级并发分布式系统的九次架构演进历程,以电商平台为例,详细分析了每个阶段的架构特点、瓶颈问题及解决方案。文章首先强调了架构演进的核心逻辑是随业务增长逐步解决瓶颈问题,而非一次性设计。随后通过九次跃迁(如应用数据分离、读写分离、微服务化等)展示了技术决策背后的思考过程,包括引入缓存、分库分表、容器编排等关键技术。最后总结了架构决策方法论,指出应基于实际业务需求选择合适架构,避免过度设计。全文提供了技术选型速查表,为开发者提供实用参考。

2503_92929084的博客 436

使用mindie:2.0.RC2-800I-A2-py311-openeuler24.03-lts制作一个通用的模型推理性能测试的镜像

本文详细介绍了在NPU环境下进行模型推理性能测试的完整流程。首先配置了测试所需的环境和设备信息,包括Python 3.10.9和3.11.6版本、测试脚本和镜像文件。然后分步骤说明了镜像制作过程:创建特权容器、安装Python 3.10.9、配置VLLM环境,并详细描述了测试容器的启动方法。最后提供了镜像打包和使用指南,包括如何加载镜像、启动容器、运行测试脚本(以DeepSeek-32B模型为例)以及更换测试模型的步骤。整个过程涉及环境变量配置、权限设置和服务启动等关键操作。

m0_50105717的博客 1015

docker入门(三)ubuntu镜像安装redis

拉取ubutnu镜像 参考Docker 入门(一) ubuntu 镜像 安装 jdk1.8 安装redis 进入容器,更新 apt-get update 安装redis apt-get install redis-server # 选择 y 继续安装 # 结束后 修改配置文件 vim /etc/redis/redis.conf # 注释 bing 127.0.0.1 #启动 redis ...

xiyeming的博客 515

基于 YOLOv26 的光伏板热斑检测系统:红外+可见光

本文提出了一种基于YOLOv26的光伏板热斑检测系统,采用红外+可见光双模态融合方案。系统架构包含数据预处理、热斑检测、故障诊断和维修决策等模块,结合无人机巡检与地面监控。关键技术包括YOLOv26目标检测模型、双模态数据融合、边缘计算部署等。研究构建了包含多种故障类型的光伏板专业数据集,并采用数据增强技术提升模型性能。系统实现了热斑检测、分类(轻微/中等/严重/危急)以及功率损失评估等功能,为光伏电站智能运维提供解决方案。

一键难忘的博客 496

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

关于docker部署redis、nginx、mysql、jdk的相关操作

前言: 目前公司分配给我一个关于”xxx发展“的一个项目,主要是要求我利用docker将这个项目搭起来,之后方便开发人员进行后续工作,本次工作大约历时2天6个小时,由于是第一次做,遇到了很多很难,因此在这里进行一次总结,以便增长自己的知识。 1.Docker的安装 公司分配一台华为云上的ECS服务器,IP地址为114.1xx.xxx.101;操作系统为Ubuntu。在此之前都是在Centos上安装docker,故我在菜鸟教程文档的帮助下安装了docker,操作流程如下: 卸载原有docker *

qq_39565652的博客 943

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用docker搭建LNMPR(ubuntu 18.04+Nginx 1.19+MySQL 5.7+PHP-FPM 7.4+Redis 6.2)开发环境

这篇文章用于介绍如何使用docker在ubuntu系统上搭建一个LNMP开发环境,下面我们将会编写Dockerfile,基于官方docker hub镜像,分别构建我们自己的镜像,然后运行。Nginx 1.19MySQL 5.7Redis 6.2为什么不直接使用官方镜像,而是自己再构建一个?因为官方镜像一般安装的东西都很少,例如PHP-FPM的官方镜像,像redis、mysqli、pdo等等这些常用的扩展都是没有的,还有一些常用的系统命令也没有安装,例如ping、netstat、ps等等。

juvenile_的博客 891

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[MAC] 使用 Docker 搭建 Ubuntu18 + Nginx + Php开发环境

安装docker 1、 docker下载 正常安装流程,最好在官网注册一个账号,本地运行 docker 后也需要账号登陆的。 2、 登陆 docker 并启动红色标注的是用户名,此处注意是用户名不是注册的邮箱。 3、 下载镜像 打开 iterm,登陆 docker。 username 不是注册邮箱,而是本身的用户名 不知在哪里看到过这样一句话:镜像和容器的关系如同类和对象。 // pull images 镜像 docker pull ubuntu:18.04 // 根据镜像创建一个容器并运行,

coco的专栏 916

Docker 快速搭建 Ubuntu + Nginx + PHP 镜像(环境)

快来使用 Docker 搭建吧! 查看本地镜像: 运行容器,并进入容器: 退出容器: 查看所有容器: 启动一个已停止的容器: 进入容器: 或者 更新-apt (安装软件前请更新 apt-源,可能会出现找不到安装包) 安装 Nginx nginx-命令 安装 PHP php7.4-fpm-命令 安装编译工具 修改 nginx 配置文件 启动服务 查看服务 在本地浏览器测试-nginx 执行-php 生成新的镜像 大家在使用的过程中可以先跑通nginx...

YBaog Blog 2249

docker+nginx+redis项目部署

1、安装docker Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 `stable` `test` 和 `nightly` 三个更新频道。 官方网站上有各种环境下的 [安装指南](Redirecting…),这里主要介绍 Docker CE 在 CentOS上的安装。 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS

一瓶绿茶三元钱 891

docker使用记录1:构建java、python、c++环境镜像

先执行算法组准备好的安装脚本,./netcdf_install.sh此脚本会自动下载包并解压安装,但是由于脚本编写有问题,下载完三个包后回报错退出,需要手动使用tar-zxvfxxxxx.tar.gz命令将三个包解压,事先准备的netcdf-c-4.9.0.tar.gz不需要解压;执行完安装之后尝试调用算法命令,成功失败均有可能,如果失败就重启容器重装一遍,直到成功为止,暂时没有找到成功的规律,成功后再安装C++相关环境;再使用pipinstallmkl安装mkl库,通过dockerfile中写。...

Carrot_ly的博客 2068

使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)

使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)

IT之一小佬的博客 3232

python镜像加载_构建Python2+Java8的 Docker 镜像

基于Python2.7.15-alpine镜像来添加 Java8 环境Dockerfile内容如下:## NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"## PLEASE DO NOT EDIT IT DIRECTLY.#FROM python:2.7.15-alpine# A few reasons for installing distri...

weixin_36026454的博客 1086

Dockerfile

docker

qq_43649937的博客 232

dockerfile组合自定义镜像 - java jdk python

背景 需求是需要在docker里运行java程序,java程序会去调用python文件处理数据。那么就需要我们的镜像里不仅有java运行环境,还需要有python的运行环境。 思路 通过查看dockerhub官网上python和java的构建命令,发现第一行命令都基于同一个根镜像,所以思考是否可以将2者的构建命令合并到一起。通过不断的测试调整之后成功了,所以确实是可以这样做的。 实现 编写Dockerfile文件 FROM python:3.9.2 RUN sed -i 's/deb.debian.org/

xqlsrjjjh 3696

Docker_dockerfile nginx和tomcat

一,镜像的分类 1,docker 的三要素 1), Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。 2),容器(Container) 1.Docker利用容器(Container)独立运行一个或一组应用 2.容器使用镜像创建的运行实例 3.容器可以被启动、开始、停止、删除,每个容器之间都是相互隔离的,保证平台的安全。 4.可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

LX199707的博客 375
上一篇: Dockerfile笔记
下一篇: 基于Hexo-Ocean主题博客搭建
松林羊
博客等级 码龄11年 43粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值