Docker容器(二)—— Dockerfile详解、如何分享自己的Dockerfile

【云原生 | Docker 高级篇】05、DockerFile 详解 DockerFile 详解!!! 阅读详情

Dockerfile详解

1.FROM:引入和开始      

       #从头制作baseImage

       FROM scratch

       #使用已有的baseImage

       FROM centos

       #指定使用的版本

       FROM ubuntu:14.04

2.LABEL:定义一些说明信息      

        LABEL maintainer=885599342@qq.com

        LABEL version=”1.0”

        LABEL description=”xxx”

3.RUN:执行命令,每执行一条RUN,多一个分层,一般用&&合并语句,反斜杠换行

RUN yum -y update && yum -y install lrzsz \

       net-tools

RUN apt-get -y update && apt-get -y install lrzsz\

       net-tools

RUN /bin/bash -c ‘source $HOME/.bashrc;echo $HOME’

4.WORKDIR:进入或创建目录,尽量不要使用相对路径     

    #进入/root目录

    WORKDIR /root

    #如果没有会自动创建

    WORKDIR /test

    WORKDIR demo

    #输出:/test/demo

    RUN pwd

5.ADD和COPY:将本地的文件,添加到image里      

       #将hello添加到根目录下

       ADD hello /

       #将tar包直接解压到根目录

       ADD test.tar.gz /



       #最终hello应该在 /root/test/hello

       WORKDIR /root

       COPY hello test/

6.ENV:增加Dockerfile的可读性      

       #设置常量

       ENV MYSQL_MAJOR 5.5

       #使用常量

       $MYSQL_MAJOR

       RUN apt-get -y install mysql-server=”${MYSQL_VERSION}”

CMD和ENTRYPOINT

#shell格式

RUN apt-get -y install lrzsz

CMD echo “hello docker”

ENTRYPOINT echo “hello docker”

             

       #exec格式

       RUN [“apt-get”,”-y”,”install”,”lrzsz”]

       CMD [“/bin/echo”,”hello docker”]

       ENTRYPOINT [“/bin/echo”,”hello docker”]

 

   ENTRYPOINT使用的比CMD多一些

   ENTRYPOINT:设置容器启动时运行的命令,一定会执行,不会被忽略

 

1.编写Dockerfile

2.构建image

3.分别运行两个image看效果

4.修改Dockerfile如下

5.重新构建和运行

CMD:设置容器启动后默认执行的参数和命令,若docker指定了其他命令,CMD可以被忽略,CMD若指定多个,只运行最后一个

1.编写file

2.构建和运行

 

 CMD和ENTRYPOINT对比

 

1.再构建一个ENTRYPOINT

2.构建

3.运行CMD的image

4.运行ENTRYPOINT的image

CMD命令可能被覆盖,ENTRYPOINT命令一定会执行

分享docker image

分享的image一定要以自己docker用户名开头,例如:zhangsan/centos

1.登录

 2.上传自己得image

3.下载自己的image

 分享自己得Dockerfile

 

分享image不太安全,一般分享Dockerfile

1.点击

2.与gitHub关联,链接一个账户

3.link到github

4.点击

 

搭建私有的docker registry

 

1.docker hub里搜

2.开启另一台虚拟机,执行安装运行registry

3.在之前机器安装telnet,测试连通信

4.构建image,IP是仓库机器的IP

5.直接push会报错

6.编写json文件,目录和文件名如下,IP是仓库机器的IP

7.修改文件,添加一行即可

8.重启docker

9.查看docker私有仓库的内容,此时没有东西,路径如下

10.上传自己的image到docker私有仓库

11.再次查看私有仓库

12.删掉本地的image

13.从私有仓库下东西

Dockerfile案例

用py写一个web应用

1.编写py文件

2.安装wget

3.安装pip,直接复制运行.txt中的命令

4.安装

5.用pip安装flask

6.搭建web服务成功

7.编写Dockerfile

8.构建image

9.运行

Docker使用指南与Dockerfile文件详解:从入门到实战 掌握 Dockerfile 的编写,意味着你能够将应用与环境完美封装,实现“一次构建,处处运行”。无论是微服务架构还是 CI/CD 流水线,Dockerfile 都是标准化交付的核心工具。现在,尝试为你的项目编写一个 Dockerfile,体验容器化带来的效率革命吧! 阅读详情

相关推荐

在Docker容器中部署LibreOffice:通过Dockerfile定制高效办公环境

随着容器技术的普及,Docker已成为快速部署和管理应用的首选工具。LibreOffice作为一款开源的办公套件,以其丰富的功能和兼容性受到许多企业和个人用户的青睐。将LibreOffice集成到Docker容器中,不仅便于跨平台部署,还能实现资源的隔离和管理,特别适合云环境下的文档处理服务。本文将详细介绍如何通过编写Dockerfile来构建一个包含LibreOffice的Docker镜像,并探讨如何优化和定制这一过程,以满足不同场景的需求。

Programming Talk 3612

Docker之Dockerfile

Dockerfile 是用来构建docker 镜像的文件!是一个命令参数脚本 构建步骤: 1、编写一个dockerfile文件 2、docker build 构建成为一个镜像 3、docker run 运行镜像 4、docker push 发布镜像(DockerHub、阿里云仓库)

JAVA开发区的博客 7032

Java应用容器化:Dockerfile详解与最佳实践

容器化Java应用需要考虑很多方面,从基础的Dockerfile编写到JVM参数优化,从镜像大小控制到应用配置管理。通过遵循本文介绍的最佳实践,你可以创建更高效、更安全、更易于维护的Java应用容器。随着Java生态向云原生方向发展,Spring Boot、Quarkus等框架都在不断优化其容器化支持。通过持续学习和实践,你可以充分发挥Java应用在容器环境中的潜力。希望本文对你容器化Java应用有所帮助!如有任何问题或建议,欢迎在评论区留言讨论。

m0_53548081的博客 1112

07-DockerFile

文章目录DockerFileDockerFile构建过程DockerFile的指令实战:构建自己的centosCMD 和 ENTRYPOINT 的区别实战:DockerFile制作tomcat镜像发布镜像发布镜像到阿里云镜像容器服务Docker所有流程小结 DockerFile dockerfile是用来构建dokcer镜像的文件! 命令参数脚本 ! 构建步骤: 1、编写一个dockerfile 文件 2、docker build构建成为一个镜像 3、docker run运行镜像 4、docker pus

xixihaha_coder的博客 885

Anki小白必看:手把手教你打造高颜值个性化笔记模板(附Leaflyer模板下载)

本文为Anki新手提供详细的个性化笔记模板设计指南,从基础配置到高级定制技巧,帮助用户打造高效记忆系统。特别推荐Leaflyer模板下载,通过视觉优化和功能强化,显著提升学习体验和记忆效率。

weixin_28717969的博客 433

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功

GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。

weixin_70208651的博客 1万+

Docker(五)DockerFile详解

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本,通过Dockerfile的实战案例了解dockefile的操作~

码云说的博客 2654

瑞芯微RV1126B芯片实战:如何用3Tops NPU打造智能安防摄像头(附配置指南)

本文详细介绍了基于瑞芯微RV1126B芯片构建高性能智能安防摄像头的实战经验。文章深入剖析了其3Tops NPU与独立AI-ISP的协同优势,提供了从硬件选型、开发环境搭建、AI模型部署到系统调优的全流程配置指南,帮助开发者充分发挥芯片潜力,实现高效、稳定的智能视觉应用。

weixin_29281915的博客 444

Docker容器 - DockerFile详解

Docker container - dockerfile details

Trollz的博客 6434

法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置

下载地址在文末。我们公司用新到一批FANUC 系统的设备,为方便使用就装了一个 FANUC 数控系统仿真软件FANUC CNC Guide v25.0 ,还是最新版不是市面上流传的老版本。模拟学习一下。

hakesashou的博客 1万+

【PCIe 总线及设备入门学习专栏 1.3 -- PCIe 基础知识 lane和link介绍】

PCIe RC(Root Complex)是PCIe树的根节点,一个RC 可以包括多个 RP(Root Port),例如一个16 条 lane的PCIe RC 可以包括4个RP(4个x4的),或者8个RP(8个x2的)等等。在该模式下,数据传送由CPU执行I/O端口指令来按照字节或更大的数据单位来处理,占用大量的CPU资源,数据传输速度也大大低于DMA模式。国内应该有公司做出相应的phy芯片(例如芯动科技、牛芯半导体),毕竟常见的pcie 3.0才8 Gbps的速率,最新的6.0才64Gbps。

CodingCos的博客 2105

Docker教程(二) - 将容器打包成Docker镜像、使用Dockerfile打包镜像

本文章翻译自Docker的官方教程,有兴趣的同学可以上Docker官网进行play-with-docker学习。Docker的安装教程请参考这里(未定义) 本文翻译自Docker官方教程Doing More With Docker Images,并作出一定的修改及删减以加快上手速度。 Docker教程(二) - Docker镜像操作将容器打包成镜像使用 Dockerfile 打包镜像镜像的...

Mork, Lam的博客 6656

04-协议基础03:USB 2.0信号与电气特性

USB 2.0使用两根差分信号线D+/D-进行数据传输,支持低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)三种速率。USB总线为主从模式,所有事务由Host发起。端电阻值作用HostRpd(D+)15KΩ±5%下拉,默认低电平HostRpd(D-)15KΩ±5%下拉,默认低电平全速设备Rpu(D+)1.5KΩ±5%上拉到3.3V,标识全速低速设备Rpu(D-)1.5KΩ±5%上拉到3.3V,标识低速USB 2.0硬件要点。

内核笔记 105

容器技术-Dockerfile详解

我们可以把对容器的所有操作命令都记录到一个文件里,就像是写脚本程序。 之后用 docker build 命令以此文件为基础制作一个镜像,并会自动提交到本地仓库。 这样的话镜像的构建会变的透明化,对镜像的维护起来也更加简单,只修改这个文件即可。 同时分享也更加简单快捷,因为只要分享这个文件即可。 Dokcerfile 是一个普通的文本文件,文件名一般叫 Dockerfile 其中包含了一系列的指令(Instruction), 每一条指令都会构建一层,就是描述该层是如何创建的。 小试牛刀 示例: 编辑 Doc

qq_22648091的博客 2530

基于GEC6818开发板+Linux+Qt设计的智能养老院出入管理系统(195)

当前,传统的养老院出入管理模式普遍存在信息更新滞后、数据统计繁琐、实时监控能力不足等问题,难以满足现代养老机构对安全管理与服务质量提升的需求。本系统设计正是针对这些问题,通过集成先进的硬件设备如高性能GEC6818开发板以及RFID刷卡模块,结合稳定高效的嵌入式Linux操作系统和QT开发框架,构建一套功能齐全、操作直观、响应迅速的智能出入管理系统。 该系统能自动记录并实时显示老人的进出时间,方便管理人员及时了解每位老人的活动轨迹,同时具备强大的后台管理功能,支持管理员便捷地进行老人信息的增删改查操作。通

1070

【VibeCoding系列】小白入门指南:模型选择、编辑器选择、项目预定全分析

开箱即用:下载安装就能用,不用配 API Key(也可以自己配)Cmd+K 快速修改:选中代码,按 Cmd+K,直接让 AI 修改Cmd+L 对话:侧边栏聊天,支持引用文件和代码@文件引用:输入 @ 就能引用项目中的文件,AI 自动读取上下文Agent 模式:告诉 AI 一个需求,它自动跨文件修改下载地址cursor.com(免费版有额度限制,足够入门)✅下载 Cursorcursor.com),安装打开✅选一个小项目(个人名片页 or Todo List)✅按照七步工作流开干。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 212

Docker—DockerFile详解

1.DockerFile介绍 2.DockerFile指令 3.实战:构建自己的centos 4. RUN,CMD和ENTRYPOINT的区别 5. 实战:制作Tomcat镜像并发布镜像

可达鸭的博客 8539

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Docker、Dockerfile 和 Docker Desktop

docker desktop的下载安装使用; Dockerfile的内容书写教程; docker搭配Dockerfile常用命令使用教程以及docker基础概念。

qq_58096041的博客 2636

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

dockerfile 与 docker-compose的区别

先简单理解 docker 的使用过程,它分为镜像构建与容器启动。 镜像构建:即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。 容器启动:容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。针对单个容器,这可以通过 docker run 来运行。 而如果涉及多个容器的运行(如...

技术小站 9369

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【docker】win10系统下docker容器安装及使用(二):docker通过commit及dockerfile进行创建

base镜像有两层含义:(1)不依赖其他镜像,从scratch构建;(2)其他镜像可以以之为基础进行扩展。能称作base镜像的通常都是各种Linux发行版的Docker镜像,比如Ubuntu、Debian、CentOS等。对于base镜像来说,底层直接用Host的kernel,自己只需要提供rootfs就行了。 不同Linux发行版的区别主要就是rootfs。比如Ubuntu 14.04使用upstart管理服务,apt管理软件包;而CentOS 7使用systemd和yum。这些都是用户空间上的区别,Li

种一棵树最好的时间是十年前,其次是现在 1541

docker容器怎么导出dockerfile文件

我整理的一些关于【容器,Docker】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/xltfov如何导出Docker容器的Dockerfile 在使用Docker进行开发和部署时,我们经常需要将已创建的Docker容器重新构建为Dockerfile,以便于版本控制和共享。然...

weixin_33016355的博客 651

【docker详解12】-Dockerfile

Dockerfile官方文档:Dockerfile reference | Docker DocumentationDockerfile中文文档:Docker中文文档 Dockerfile介绍-DockerInfo我们可以把刚才的对容器的所有操作命令都记录到一个文件里,就像写更脚本程序。之后用 docker build 命令以此文件为基础制作一个镜像,并会自动提交到本地仓库。这样的话镜像的构建会变的透明化,对镜像的维护起来也更加简单,只修改这个文件即可。同时分享也更加简单快捷,因为只要分享这个文件即可。Do

桂安俊@KylinOS 3030

Docker笔记(二)应用的容器化(Dockerfile)

一、简介 将应用程序整合到容器中进行运行的过程,称为应用的“容器化”,也可以叫做“Docker化”。一个应用程序在代码编写,测试完成之后,还要面临在生产环境的构建,部署,运维等一系列繁杂的问题,开发人员与运维人员也许要经过多次的协调沟通才能将一个应用成功投入生产。设想如果将应用程序转变成一个容器,那些与应用运行所需环境相关的问题就几乎都不存在了,开发只需要专注于应用代码的开发,稍微加上一点“如何...

木木木 523

8.1 Docker 容器_Docker容器层 Dockerfile构建镜像

一、 Docker docker:集群的管理 容器共享宿主机的OS(表现形式:进程) 客户端(任务)—— 1、 安装 lftp vim repo ce(社区) yum install docker-ce enable --now info docker0:桥接 1:网关 vim sysctl docker。conf (include:改内核参数) –system info 默认仓库 拉取镜像 pull nginx (虚拟机联网) 网速慢,设置加速器 (阿里云账号) lftp reload info rest

weixin_47133613的博客 748

Docker镜像、容器数据卷和Dockerfile

Docker镜像 概述 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 UnionFS(联合文件系统) UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virt

HTZW的博客 853
上一篇: Docker容器(一) —— 容器、docker概念、docker安装及使用
下一篇: Docker容器(三)—— 对Container(容器)的操作、Dockerfile的一个案例、Docker的网络
The_Reader
博客等级 码龄10年 74粉丝 97原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值