4. docker镜像、Dockerfile

news2024/12/27 18:10:16

docker镜像、Dockerfile

  • 一、docker镜像
    • 1、镜像介绍
    • 2、镜像核心技术
  • 二、Dockerfile定制镜像
    • 1、Dockerfile使用流程
      • 1.1 编写Dockerfile
      • 1.2、构建镜像
      • 1.3 创建容器测试镜像定制操作
    • 2、Dockerfile常用指令

一、docker镜像

1、镜像介绍

  • 分层的文件系统
    优势:节省空间、速度快、重用

  • 只读
    创建容器时,会在镜像上面添加一个可写层

在这里插入图片描述

2、镜像核心技术

  • COW copy on write 写时复制
  • Union fs 联合文件系统
    overlay2
    device mapper
[root@martin-host ~]# docker info  
Client: Docker Engine - Community
 Version:    26.1.4
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.27.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 4
 Server Version: 26.1.4
 Storage Driver: overlay2

二、Dockerfile定制镜像

1、Dockerfile使用流程

1.1 编写Dockerfile

[root@martin-host testDockerfile]# ls
CentOS-Base.repo  Dockerfile
[root@martin-host testDockerfile]# cat Dockerfile 
FROM centos:7

COPY  CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo

RUN yum install -y net-tools

1.2、构建镜像

[root@martin-host testDockerfile]# docker build -t centos:v1 ./ 

1.3 创建容器测试镜像定制操作

[root@martin-host testDockerfile]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       v1        3e88e2fdb6df   56 seconds ago   461MB
redis        latest    7614ae9453d1   2 years ago      113MB
centos       7         eeb6ee3f44bd   2 years ago      204MB
nginx        1.18      c2c45d506085   3 years ago      133MB

[root@martin-host testDockerfile]# docker run -tid --name=test1 centos:v1 
949b757d2b35b4d115a88f69cc8f1d704b6e6fcd34a64d4ecbfc28422e7530aa

[root@martin-host testDockerfile]# docker exec -ti test1 bash
[root@949b757d2b35 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1472
        inet 10.88.7.2  netmask 255.255.255.0  broadcast 10.88.7.255
        ether 02:42:0a:58:07:02  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 656 (656.0 B)

2、Dockerfile常用指令

  • FROM
    指定基础镜像;
    镜像不存在,构建镜像时自动下载镜像
    建议尽量选择小容量的镜像 / debian/ ubuntu
FROM 镜像名称 
  • RUN
    指定定制命令
RUN 命令 && 命令 && 命令
  • CMD
    定义容器创建时,自动执行的命令
    注意事项:
    1、前台启动服务的指令
    2、创建容器时,不要自己指定命令,会覆盖CMD
    3、一个Dockerfile中只能有一条CMD指令
CMD httpd -D FOREGROUND
CMD ["httpd", "-D", "FOREGROUND"]	// 推荐
  • ENTRYPOINT
    定义容器创建时,自动执行的命令
    不会被覆盖
ENTRYPOINT ["httpd", "-D", "FOREGROUND"]
  • COPY
    复制文件
    注意:只能复制本地文件
COPY 源文件 目的文件 
  • ADD
    复制文件
    注意:
    1、支持本地文件、URL、压缩包会自动解压
ADD 源文件 目的文件 
ADD file01 /tmp/file01
ADD http://nginx.org/download/nginx-1.27.0.tar.gz /tmp
ADD jdk-8u91-linux-x64.tar.gz /tmp
  • EXPOSE
    说明容器服务端口
    注意:
    1、-P随机发布端口时,Dockerfile中必须有EXPOSE指令
EXPOSE 端口 端口
  • VOLUME
    定义持久化存储的目录
    创建容器时不使用-v明确指定目录,会自动生成匿名卷
VOLUME 目录
  • ENV
    定义环境变量
ENV 变量名称 值 
  • WORKDIR
    定义当前目录
WORKDIR 目录
  • USER
    指定容器运行的用户
USER 用户名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1935163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】C++11的新特性 --- 右值引用与移动语义

假如生活欺骗了你 不要悲伤&#xff0c;不要心急&#xff01; 忧郁的日子里须要镇静 相信吧 快乐的日子将会来临 -- 普希金 《假如生活欺骗了你》 C11的新特性 1 左值与右值2 左值引用和右值引用3 引用的意义4 移动语义4.1 移动构造与移动赋值4.2 区分现代写法与移动语义…

【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块

二叉搜索树&#xff1a;【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 目录 一、AVL树的概念 二、AVL树的原理与实现 AVL树的节点 AVL树的插入 AVL树的旋转 AVL树的打印 AVL树的检查 三、实现AVL树的完整代码 四、总结 前言&#xff1a…

开源模型应用落地-FastAPI-助力模型交互-进阶篇(三)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理&#xff0c;使应用程序能够处理各种不同的请求场景&#xff0c;提高应用程序的灵活性和可扩展性。 在数据验证和转换方面&#xff0c;高级用法提供了更精细和准确的控制&#…

旧系统的会员信息如何导入新系统?

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

浙商之源——龙游商帮:天涯贾客李汝衡

龙游丝绸的历史可以追溯到古代&#xff0c;当地优越的自然环境和气候条件为蚕桑业的发展提供了得天独厚的条件。随着时间的推移&#xff0c;龙游地区的丝绸产业逐渐发展壮大&#xff0c;形成了自己独特的丝绸文化和技艺。 李汝衡&#xff0c;龙游人&#xff0c;其父鹤汀行贾远…

quantlab5.2代码更新,含本周所有策略集和数据集。

原创文章第592篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 一周一度更新代码的日子&#xff0c;我们发布本周积累的策略集——Quantlab5.2&#xff1a; 请大家前往星球下载更新&#xff1a;AI量化实验室——2024量化投资的星辰大海 quantlab…

Harmony 状态管理 @Local 和 @Param

Harmony 状态管理 Local 和 Param Local 背景 Local 是harmony应用开发中的v2版本中 对标**State**的状态管理修饰器&#xff0c;它解决了 State 对状态变量更改的检测混乱的问题&#xff1a; State 修饰的状态变量 可以是组件内部自己定义的State 修饰的状态 也可以由外部父…

实战:Eureka的概念作用以及用法详解

概叙 什么是Eureka&#xff1f; Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心&#xff0c;用于提供服务发现功能。Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分&#xff0c;基于 Netflix Eureka 进行了二次封装&#xff0c;主要负责…

逻辑门的题目怎么做?

FPGA语法练习——二输入逻辑门&#xff0c;一起来听~~ FPGA语法练习——二输入逻辑门 题目介绍&#xff1a;F学社-全球FPGA技术提升平台 (zzfpga.com)

adb查看网卡信息,并修改网卡mac地址

这种方法修改mac后&#xff0c;关机后会失效! 文章结尾有永久修改mac地址的方法! 1. 查看网卡的信息&#xff0c;以及mac地址&#xff0c;ip地址&#xff0c;子网掩码等 //查看所有网卡信息adb shell ifconfig//MAC地址&#xff1a; HWaddr 5e:2c:e9:58:3e:4f //IP地址&a…

数据库理论基础

1.什么是数据库 1.1数据 描述事物的符号记录&#xff0c; 可以是数字、 文字、图形、图像、声音、语言等&#xff0c;数据有多种形式&#xff0c;它们都可以经过数字化后存入计算机。 1.2数据库 存储数据的仓库&#xff0c;是长期存放在计算机内、有组织、可共享的大量数据…

(三)原生js案例之滚动到底部解锁按钮状态

业务主要是注册页面&#xff0c;有很长的条款需要用户去读&#xff0c;必须确认用户是不是看到全部的条款&#xff0c;这个场景下可以使用 效果 代码实现 必要的css <style>*{padding: 0;margin: 0;}ul{list-style: none;width: 330px;height: 100%;/* height: 200px;…

springboot3——项目部署

springboot的项目开发完了&#xff0c;怎么样把他放到服务器上或者生产环境上让他运行起来跑起来。就要牵扯到项目部署&#xff0c;打包的方式了。 springboot支持jar和war: 打jar包&#xff1a;默认方式&#xff0c;项目开发完打个jar包&#xff0c;通过命令把jar包起起来就…

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的&#xff0c;当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能&#xff0c;比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层&#xff0c;我们今天来聊一聊HTTP。 协议 协议…

使用 vue-element-plus-admin 框架遇到的问题记录

项目打包遇到的问题&#xff1a; 打包语句&#xff1a;pnpm run build:pro 报错信息&#xff1a; Error: [vite]: Rollup failed to resolve import "E:/workplace_gitee/xxx/node_modules/.pnpm/element-plus2.5.5_vue3.4.15/node_modules/element-plus/es/components…

最新 Docker 下载镜像超时解决方案:Docker proxy

现在Docker换源也下载失败太常见了&#xff0c;至于原因&#xff0c;大家懂得都懂。本文提供一种简洁的方案&#xff0c; 利用 Docker 的http-proxy&#xff0c;代理至本机的 proxy。 文章目录 前言Docker proxy 前言 这里默认你会安装 clash&#xff0c;然后有配置和数据库。…

使用Java -jar运行就jar包时报异常:org.yaml.snakeyaml.error.YAMLException异常

Java运行就 .jar包时出现的 YAMLException 异常 我在本地环境测试时&#xff0c;使用 java -jar 命令运行 Java 可执行 .jar 包时&#xff0c;遇到了 org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 异常&#xff1b;这…

【Docker】Docker-compose 单机容器集群编排工具

目录 一.Docker-compose 概述 1.容器编排管理与传统的容器管理的区别 2.docker-compose 作用 3.docker-compose 本质 4.docker-compose 的三大概念 二.YML文件格式及编写注意事项 1.yml文件是什么 2.yml问价使用注意事项 3.yml文件的基本数据结构 三.Docker-compose …

Flink HA

目录 Flink HA集群规划 环境变量配置 masters配置 flink-conf.yaml配置 测试 Flink HA集群规划 FLink HA集群规划如下&#xff1a; IP地址主机名称Flink角色ZooKeeper角色192.168.128.111bigdata111masterQuorumPeerMain192.168.128.112bigdata112worker、masterQuorumPee…

VS C#类文件自动生成头部注释

VS C#类文件自动生成头部注释&#xff08;以VS2019为例&#xff09; 1、更新位置 E:\VS2019\vs_2019\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class 2、替换Class 原始文件 using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ > 3.5…