Docker学习——Dock镜像
什么是Docker镜像
Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。
- 一个镜像可以包含一个基本的操作系统环境,里面仅安装了 Apache 应用程序(或 用户需要的其他软件) 可以把它称为一个 Apache 镜像。
- 镜像是创建 Docker 容器的基础。
- 通过版本管理和增量的文件系统, Docker 提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。
获取镜像
其中, NAME 是镜像仓库名称(用来区分镜像), TAG 是镜像的标签(往往用来表示版本信息) 。 通常情况下, 描述 一 个镜像需要包括 “ 名称+标签 “ 信息。
例如, 获取一个 Ubuntu 18.04 系统的基础镜像可以使用如下的命令:
[root@openEuler-node1 ~]# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
7c457f213c76: Pull complete
Digest: sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98
Status: Downloaded newer image for ubuntu:18.04
如果没有写 “名称+标签“ 信息中的标签,会默认添加一个latest标签,表示这个仓库中最新的镜像
[root@openEuler-node1 ~]# docker pull ubuntu
Using default tag: latest #自动添加的一个标签,获取最新的版本
latest: Pulling from library/ubuntu
bccd10f490ab: Pull complete
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:latest
[root@openEuler-node1 ~]# docker pull hub.c.163.com/public/centos:6.5
6.5: Pulling from public/centos
96057de2d572: Pull complete
a3ed95caeb02: Pull complete
8a1dcc3f76c2: Pull complete
8fe56c90e86a: Pull complete
43fc3558431f: Pull complete
5881bc109689: Pull complete
Digest: sha256:92fd18cda0cbf63bb4b5ffd0c073a9d689d5b202e3b491cbc74488fff1c37d11
Status: Downloaded newer image for hub.c.163.com/public/centos:6.5
查看镜像
images命令列出镜像
使用docker images或docker image ls 命令可以列出本地主机上已有镜像的基本信息。

- REPOSITORY:来自于哪个仓库
- TAG:镜像的标签信息
- IMAGE ID:镜像的ID(唯一标识镜像)
images子命令主要支持如下选项:
docker tag ubuntu:latest myubuntu:latest 使用inspect命令查看详细信息
[root@openEuler-node1 ~]# docker inspect ubuntu:18.04
[root@openEuler-node1 ~]# docker inspect -f {{".Architecture"}} ubuntu:18.04
amd64
搜索镜像
[root@openEuler-node1 ~]# docker search busybox
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
busybox Busybox base image. 3223 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made f… 56 [OK]
yauritux/busybox-curl Busybox with CURL 25
arm32v7/busybox Busybox base image. 10
arm64v8/busybox Busybox base image. 8
odise/busybox-curl 4 [OK]
s390x/busybox Busybox base image. 3
.....
删除和清理镜像
删除就rm -f参数是强制删除,可以基于ID或者标签删除
docker rmi busybox:latest
- -a, -all: 删除所有无用镜像, 不光是临时镜像;
- -filter filter: 只清理符合给定过滤器的镜像;
- -f, -force: 强制删除镜像, 而不进行提示确认。
创建镜像
1基于已有容器创建
该方法主要是使用 docker [container] commit 命令
演示:
[root@openEuler-node1 ~]# docker run -it ubuntu:18.04 bash
root@35b863d7caf6:/# touch test
root@35b863d7caf6:/# exit
此时容器与原镜像就不一致了,可以用commit来提交一个新的镜像
[root@openEuler-node1 ~]# docker commit -m "Add a new file" -a "FYS" 35b863d7caf6 test:0.1
sha256:e2c7a68ee5c90d3ae55b095ca7dc8ee4a9ca1a54e9722d6ef4b98c68d1c5e4cf
[root@openEuler-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 e2c7a68ee5c9 23 seconds ago 63.2MB
2基于本地模板导入
[root@openEuler-node1 ~]# cat ubuntu-18.04-x86_64-minimal.tar.gz I docker import - ubuntu:lB.04
3基于Dockefile创建
[root@openEuler-node1 ~]# vim dockerfile
FROM debian:stretch-slim
LABEL version="1.0" maintainer "docker user <docker user@github>"
RUN apt-get update && \apt-get install-y python3 && \ apt-get clean && \rm rf /var/lib/apt/lists/*
[root@openEuler-node1 ~]# docker build -t python:3 .
FROM: 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER: 镜像维护者的姓名和邮箱地址
RUN: 容器构建时需要运行的命令,如果在容器运行时需要运行其他命令,使用run指定
EXPOSE: 容器对外暴露的端口,mysql:3306、redis:6379
WORKDIR:创建容器后,进入容器使用pwd指令落脚点的目录,没有指定就是/,如centos是/,redis是/data
ENV: 用来构建镜像的过程中设置环境变量,"ENV 键 值"。 相当于成员变量
如:ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何RUN指令中使用;也可以在其它指令中直接使用这些环境变量,
ADD: 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包。 ADD = COPY+解压缩
COPY: 类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置
VOLUME: 容器数据卷,用来数据保存和持久化工作
CMD: 指定一个容器启动时需要运行的命令。DockerFile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换
也就是人工添加或文件中指定的CMD参数会把DockerFile里面的参数覆盖,只会有最后一个生效。.其中 使用 -f 命令可以指定dockerfile的路径。
存出和载入镜像
1存出镜像
[root@openEuler-node1 ~]# docker save -o ubuntu_18.04.tar ubuntu:18.04
[root@openEuler-node1 ~]# ll
总用量 64012
-rw-------. 1 root root 974 2月 19 16:15 anaconda-ks.cfg
-rw-r--r-- 1 root root 205 3月 11 16:47 dockerfile
-rw------- 1 root root 65539072 3月 11 16:54 ubuntu_18.04.tar
2载入镜像
[root@openEuler-node1 ~]# docker load < ubuntu_18.04.tar
[root@openEuler-node1 ~]# docker load -i ubuntu_18.04.tar
上传镜像
[root@openEuler-node1 ~]# docker push user/test:latest
相关文章:
Docker学习——Dock镜像
什么是Docker镜像 Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。 一个镜像可以包含一个基本的操作系统环境,里面仅安装了 Apache 应用程序(或 用户需要的其他软件) 可以把它称为一个 Apache 镜像。镜像是创建 Do…...
CorelDRAW Graphics Suite2024专业图形设计软件Windows/Mac最新25.0.0.230版
CorelDRAW Graphics Suite 2024是一款专业的图形设计软件,它集成了CorelDRAW Standard 2024和其他高级图形处理工具,为用户提供了全面的图形设计和编辑解决方案。 该软件拥有强大的矢量编辑功能,用户可以轻松创建和编辑矢量图形,…...
el-form表单中,对非表单内字段增加校验的方法
1、问题说明: 在开发表单的时候,可能会遇到el-form-item中绑定的值不在表单绑定的数据对象中。 此时用prop绑定该字段名是无效的,需要单独对这个字段进行校验。 在el-form-item中有一个属性 error 。用于表单域验证错误信息,设…...
【VTKExamples::Points】第四期 ExtractEnclosedPoints
很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例ExtractEnclosedPoints,并解析接口vtkExtractEnclosedPoints,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我…...
bug--xxoobject has no attribute xxx
Python 创建类的实例后却不能调用写的方法,检查了半天原来是缩进的问题,def函数不应该和class并列 只能说这个英文空格太小了,看不出来。。。。...
7 BUILD.gn文件怎么写,Gn + Ninja编译一个Hello world程序的例子Demo
BUILD.gn文件怎么写,Gn Ninja编译一个Hello world程序的例子Demo 作者将狼才鲸创建日期2024-03-11 Ninja安装流程见:一个能直接运行的Ninja例子,build.ninja文件怎么写?Gn安装流程见:Ubuntu18.04下安装Gn软件 这是一…...
北京市行政村边界shp数据/北京市乡镇边界/北京市土地利用分类数据
北京是一座有着三千多年历史的古都,在不同的朝代有着不同的称谓,大致算起来有二十多个别称。北京地势西北高、东南低。西部、北部和东北部三面环山,东南部是一片缓缓向渤海倾斜的平原。境内流经的主要河流有:永定河、潮白河、北运…...
力扣--动态规划/深度优先算法/回溯算法93.复原IP地址
这题主要用了动态规划和回溯算法。 动态规划数组初始化(DP数组): 首先,创建一个二维数组dp,用于记录字符串中哪些部分是合法的IP地址。对字符串进行遍历,同时考虑每个可能的IP地址部分(每部分由1到3个字符组…...
第一次Python小练习题目
1.打印某学校的校训,具体内容如下所示: ****************************** 勤奋 严谨 求实 创新 ****************************** 注意: 第一行和最后一行各有 30 个*号。 答案: school_strs "勤奋 严谨 求实 创新&q…...
[BUG] docker运行Java程序时配置代理-Dhttp.proxyHost后启动报错
[BUG] docker运行Java程序时配置代理-Dhttp.proxyHost后启动报错 bug现象描述 版本:2.0.4(客户端和服务端都是) 环境:私有云环境,只有少量跳板机器可以访问公网,其他机器均通过配置代理方式访问公网 bug现…...
Python网站的搭建和html基础
1.Python网站代码及讲解 一般我们搭建小型的网站就用flask库就行了。 (1)安装flask库 安装完python后,按住windows徽标键和r,弹出“运行”,在里面输入cmd。 回车打开,输入“pip install flask”。 (2&am…...
SpringCloud(21)之SpringCloud Alibaba Nacos实战应用
一、Nacos安装 1.1 Nacos概述 Nacos是Alibaba微服务生态组件中的重要组件之一,主要用它实现应用的动态服务发现、配置管理、 服务管理。Nacos discovery alibaba/spring-cloud-alibaba Wiki GitHub Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简…...
Python 基础语法:基本数据类型(元组)
1 元组(Tuples)概述 1.1 元组的定义与特点 元组(Tuples)是Python中的一个内置数据类型,用于存储一系列有序的元素。元组中的元素可以是任何类型,包括数字、字符串、列表等,且元素之间用逗号…...
vuepress-theme-vdoing博客搭建教程
搭建流程 前言 这是笔者搭建个人博客所经历的流程,特附上笔记 笔者个人博客地址:沉梦听雨的编程指南 一、主题介绍 本博客使用的主题为:vuepress-theme-vdoing,相关介绍和使用方法可以参考该主题的官方文档 官方文档快速上手…...
ICC2:create terminal参考脚本
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 set list "" set i 0 ; set length xx set width xx foreach port $list { if {$i == 0} { set startx 0 set starty 0 } else { set sta…...
并行计算CUDA DEMO
//并行计算CUDA DEMO #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size); __global__ void addKernel(int *c, const int …...
【linux线程(一)】什么是线程?怎样操作线程?
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝 Linux线程 1. 前言2. 什么是线…...
python-0002-linux安装pycharm
下载软件包 下载地址:https://download.csdn.net/download/qq_41833259/88944791 安装 # 解压 tar -zxvf 你的软件包 # 进入软件解压后的路径,如解压到了/home/soft/pycharm cd /home/soft/pycharm cd bin # 执行启动命令 sh pycharm.sh # 等待软件启…...
扭蛋机小程序,扭蛋与互联网结合下的商机
扭蛋机作为一种娱乐消费模式,受众群体不再局限于儿童,也吸引了众多的年轻消费者。扭蛋机具有较大的随机性,玩具商品随机掉落,在购买前消费者完全不知道扭蛋中的商品是什么,这种未知性带来的惊喜感是吸引众多消费者的主…...
pytorch CV入门3-预训练模型与迁移学习
专栏链接:https://blog.csdn.net/qq_33345365/category_12578430.html 初次编辑:2024/3/7;最后编辑:2024/3/8 参考网站-微软教程:https://learn.microsoft.com/en-us/training/modules/intro-computer-vision-pytorc…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
