从零开始,Docker进阶之路(三):Docker镜像与命令

一、Docker核心名词

镜像文件、容器、仓库

镜像:简单理解为就是一个安装包,里面包含容器所需要运行的基础文件和配置信息,比如:redis镜像、mysql镜像等。

镜像的来源方式:

1.自己做镜像,比如自己开发微服务项目

2.拉取别人制作好的镜像,例如nginx、mysql、redis等。

容器:容器就是镜像运行的实例,容器状态分为初创建、运行、停止、暂停、删除,一个镜像可以创建多个不同的容器。

每个镜像文件都有自己的独立IP信息----轻量级的Linux服务器  虚拟化

我们可以把镜像看成是类,容器就是实例对象

仓库:仓库可以简单理解为,专门存储镜像文件的地方,类似于安卓手机市场,统一在手机市场下载开发者的安装包。

Docker官方仓库:https://hub.docker.com/ ----访问比较慢

二、Docker容器化项目三步骤

1.制作镜像文件(springboot项目等),类似于开发者开发安装应用程序打包

2.需要将我们制作好的镜像文件提交到docker仓库中,类似于开发者将自己的app应用程序发布到安卓手机助手中。

3.本地拉取我们docker仓库中的镜像文件,再交给我们容器运行,类似于用户从app市场中下载安装包运行。

三、Docker下载镜像原理

Docker pull 从远程docker官方仓库下载镜像,到本地,再使用容器运行该镜像。

注意的是:docker官方镜像仓库地址部署在国外,下载镜像比较慢,建议配置国内加速镜像。

四、Docker加载镜像配置 

https://hub.docker.com/search?q=redis&type=image ---在国外访问可能比较慢

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

科大镜像:https://docker.mirrors.ustc.edu.cn/

网易:https://hub-mirror.c.163.com/

阿里云:https://<你的ID>.mirror.aliyuncs.com

七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

五、阿里云加速镜像配置 

 阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了

命令按行输入:

cat /etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://自己的阿里云镜像.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. cat /etc/docker/daemon.json

    • cat 是一个用于查看文件内容的命令。
    • /etc/docker/daemon.json 是 Docker 守护进程的配置文件。
    • 这行命令的作用是查看当前 Docker 守护进程的配置。
  2. sudo mkdir -p /etc/docker

    • sudo 以超级用户权限执行命令。
    • mkdir 是用来创建目录的命令。
    • -p 参数表示如果父目录不存在,则创建它。
    • /etc/docker 是 Docker 配置文件的目录。
    • 这行命令的作用是确保 /etc/docker 目录存在,如果不存在,则创建它。
  3. sudo tee /etc/docker/daemon.json <<-'EOF'

    • tee 命令用于读取标准输入(stdin)的数据,并将其同时写入标准输出(stdout)和一个或多个文件。
    • /etc/docker/daemon.json 是 Docker 守护进程的配置文件。
    • <<-'EOF' 开始一个 Here 文档,允许你输入多行文本,直到你输入 EOF 标记。
    • 这行命令和接下来的几行文本块将配置信息写入到 Docker 守护进程的配置文件中。
  4. {

    • 这是 JSON 对象的开始标记。
  5. "registry-mirrors": ["https://XXXX.mirror.aliyuncs.com"]

    • 这是 Docker 配置的一部分,指定了 Docker 镜像加速器,这通常用于加速 Docker 镜像的下载速度。
  6. }

    • 这是 JSON 对象的结束标记。
  7. EOF

    • 标记 Here 文档的结束,告诉 tee 命令停止读取输入。
  8. sudo systemctl daemon-reload

    • systemctl 是管理 systemd 系统和服务的管理工具。
    • daemon-reload 命令告诉 systemd 重新加载所有服务单元。
    • 这行命令的作用是确保新的配置文件被 systemd 识别。
  9. sudo systemctl restart docker

    • restart 命令用于重启一个服务。
    • docker 是 Docker 服务的名称。
    • 这行命令的作用是重启 Docker 服务,以使新的配置生效。

查看镜像是否安装成功:

输入命令

docker info

 找到自己的镜像地址已显示,说明安装成功

六、Docker常用命令

1.docker --help  帮助命令

2.docker --version  查看版本信息

3.docker images  查看本地images镜像文件

docker rmi -f kibana:5.6.9   

  • rmi用于删除一个或多个docker镜像
  • -f 表示强制删除,即使有容器正在使用此镜像,也会被强制删除。
  • kibana:5.6.9 指定了要删除的docker镜像的名称和标签。kibana是镜像名,5.6.9是标签。

  • REPOSITORY 存储库名称
  • Tag  镜像的标签  不写版本号码 默认下载最新latest镜像
  • IMAGE ID  镜像id
  • CREATED 创建时间
  • SIZE 大小

docker images -a  列出本地所有可列出的docker镜像

docker images -q    只列出本地所有可列出镜像的ID

docker images --digests    显示镜像的摘要信息

docker images --no-trunc  显示镜像完整信息

docker image prune -a  删除未被使用的镜像

docker image prune -a --filter "until=168h"  清理特定时间前的镜像

4. 容器管理

 创建容器

docker  create:创建一个新的容器但不起动它

docker  run:创建新的容器并启动它。 -d 后台运行, -i 交互模式(保持容器一直运行), -t 分配伪终端等

docker run --name 容器名称 -p宿主机的端口号:容器内的端口号 -d 镜像名称:标签

docker run --name boyatop-tomcat -p 8081:8080 -d  tomcat:8
//每次运行都会创建一个新的容器

启动和停止容器

docker start:启动一个或多个已经停止的容器

docker stop:停止一个或多个正在运行的容器

docker restart:重启一个或多个容器

查看容器

docker ps:列出正在运行的容器

docker ps -a:列出所有容器,包括停止的容器。

docker inspect:查看容器的详细信息,如元数据、配置等

进入容器 

docker exec:在正在运行的容器中执行命令。通常与-it选项一起使用,以交互模式运行命令

docker attach:附加到正在运行的容器的标准输入、输出和错误流。

#首先使用下面的命令,查看容器ID(CONTAINER ID)
docker ps -a
#然后用下面的命令进入容器,就可以使用bash命令浏览容器里的文件:
docker exec it [CONTAINER ID] bash
#有的镜像没有bash命令,可以用对应的she11,比如sh
docker exec it [CONTAINER ID]sh

删除容器

docker rm:删除一个或多个容器。注意:只能删除不在运行状态的容器。如果要删除运行中的容器,需要使用-f选项强制删除。

查看容器日志 

docker logs:获取容器的日志输出。可以添加-f选项以持续打印日志。

容器与主机之间的操作

docker cp:用于在容器和主机之间复制文件或目录 

5.其他操作

docker  rename: 重命名一个容器。
docker  top: 查看容器中运行的进程。
docker  stats: 实时显示容器资源使用情况,如CPU、内存、网络I/0、磁盘I/O等
docker  system df:查看Docker镜像、容器和数据卷所占用的磁盘空间

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s容器运行时,移除Dockershim后存在哪些疑惑?

K8s容器运行时&#xff0c;移除Dockershim后存在哪些疑惑&#xff1f; 大家好&#xff0c;我是秋意零。 K8s版本截止目前&#xff08;24/09&#xff09;已经发布到了1.31.x版本。早在K8s版本从1.24.x起&#xff08;22/05&#xff09;&#xff0c;默认的容器运行时就不再是Doc…

记录Mac编译Android源码踩过的坑

学习Android源码&#xff0c;如果电脑配置还不错&#xff0c;最好还是下载一套源码&#xff0c;经过编译后导入到Android Studio中来学习&#xff0c;这样会更加的直观&#xff0c;代码之间的跳转查看会更加方便。因此&#xff0c;笔者决定下载并编译一套源码&#xff0c;以利于…

生活中重大决定,除了你自己,谁也帮不了你!

随着年龄增长&#xff0c;越来越发现&#xff1a;生活是非常现实&#xff0c;更现实的社会&#xff0c;自己除了自己&#xff0c;谁也帮不了你。 因此&#xff0c;一个人的生活是好是坏&#xff0c;往往取决于我们自己的努力程度&#xff0c;越努力才会越幸运。没有伞的孩子&am…

力扣(leetcode)每日一题 2516 每种字符至少取 K 个 | 滑动窗口

2516. 每种字符至少取 K 个 给你一个由字符 a、b、c 组成的字符串 s 和一个非负整数 k 。每分钟&#xff0c;你可以选择取走 s 最左侧 还是 最右侧 的那个字符。 你必须取走每种字符 至少 k 个&#xff0c;返回需要的 最少 分钟数&#xff1b;如果无法取到&#xff0c;则返回…

Win10系统插入带有麦克风的耳机_麦克风不起作用_解决方法_亲测成功---Windows运维工作笔记054

今天我在使用讯飞输入法的时候,想通过讯飞的语音输入法来提高自己的输入效率。 但是这个时候发现一个问题就是我插入我的台式机的是一个带有麦克风的耳机。 但是发现我这个耳机没有办法被电脑识别出麦克风来,所以说就没办法使用讯飞输入法的语音输入功能来直接输入文字了。…

你知道AI模型是如何学习的吗???零基础入门到精通,收藏这一篇就够了

在人工智能的广阔天地中&#xff0c;AI模型的学习方式不仅决定了其智能行为的深度和广度&#xff0c;更是推动技术进步和应用创新的关键动力。随着AI技术的飞速发展&#xff0c;我们越来越意识到&#xff0c;深入了解AI的学习机制对于把握其潜能至关重要。 这篇文章将从基础概…

从物流员到月薪12K:他如何成功转行人工智能大模型,逆袭人生!

苑同学&#xff0c;21岁&#xff0c;江苏人 专科学历&#xff0c;物流管理专业 入行后&#xff1a;嵌入式开发&#xff0c;12K 工作地点&#xff1a;苏州 苑同学&#xff0c;来自江苏苏州&#xff0c;是一名普通的大专毕业生&#xff0c;今天我们来听听他的故事。。。 我的…

蓝桥杯—STM32G431RBT6(TIM定时器输入捕获频率和占空比)

一、什么是输入捕获&#xff1f;对比输出捕获区别&#xff1f; 输入捕获是指对输入信号的特定事件进行检测和记录它主要用于测量输入信号的时间间隔、频率等参数。而输出捕获则是对输出信号的特定事件进行控制和监测。两者的主要区别在于作用对象不同&#xff0c;输入捕获关注的…

【Threejs进阶教程-着色器篇】8. Shadertoy如何使用到Threejs-基础版

【Threejs进阶教程-着色器篇】8. Shadertoy如何使用到Threejs - 基础版 前七篇地址,建议按顺序学习致谢带我入门的[X01动力装甲]大佬本文适用范围怎么样在Shadertoy中画出正圆形shadertoy中的坐标系比例转换理解Shadertoy的fragCoord理解Shadertoy中的iResolution 转移Shaderto…

【YOLO目标检测输电线路异物数据集】共4516张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式&#xff1a;YOLO格式 图片数量&#xff1a;4516 标注数量(txt文件个数)&#xff1a;4516 标注类别数&#xff1a;4 标注类别名称&#xff1a;nest、kite、balloon、trash 数据集下载&#xff1a;输电线路异物数据集 图片示例 数据集…

react 状态管理

Redux Redux是React中常用的状态管理组件&#xff0c;类似于Vue中的Pinia(Vuex)&#xff0c;可以独立于框架运行 作用&#xff1a; 通过集中管理的方式管理应用的状态 配套工具 在react中使用redux&#xff0c;官方要求按照两个插件&#xff0c;Redux Toolkit 和 react-red…

c++(AVL树及其实现)

一、AVL树的概念 AVL树是最先发明的自平衡⼆叉查找树&#xff0c;AVL是⼀颗空树&#xff0c;或者具备下列性质的⼆叉搜索树&#xff1a;它的 左右子树都是AV树&#xff0c;且左右子树的高度差的绝对值不超过1。AVL树是⼀颗高度平衡搜索⼆叉树&#xff0c; 通过控制高度差去控…

星辰计划04-深入理解kafka的消息存储和索引设计

消息存储 提到存储不得不说消息的读写&#xff0c;那么kafka他是如何读写数据的呢&#xff1f; 读取消息 1.通过debug(如何debug) 我们可以得到下面的调用栈&#xff0c;最终通过FileRecords来读取保存的数据 写入消息 1.通过debug(如何debug) 我们可以得到下面的调用栈&am…

在LLMs模型中发现人类的记忆特征

论文地址&#xff1a;https://arxiv.org/abs/2311.03839 介绍 大型语言模型&#xff08;LLM&#xff09;&#xff0c;如 ChatGPT&#xff0c;为语言建模和生成人类水平的文本输出带来了质的飞跃。 这些模型在庞大的文本库中进行训练&#xff0c;有效地建立了高度复杂和准确的…

标准 I/O

标准 I/O 引言 I/O 是一切实现的基础&#xff0c;其分为标准 I/O 和文件 I/O。 文件 I/O 依赖操作系统&#xff0c;因系统的实现方式而定&#xff0c;对于程序员来说会造成很大困扰。如打开文件&#xff0c;Linux 系统调用为 open() 函数&#xff0c;而 Windows 的系统调用为…

【锁住精华】MySQL锁机制全攻略:从行锁到表锁,共享锁到排他锁,悲观锁到乐观锁

MySQL有哪些锁 1、按照锁的粒度划分 行锁 是最低粒度的的锁&#xff0c;锁住指定行的数据&#xff0c;加锁的开销较大&#xff0c;加锁较慢&#xff0c;可能会出现死锁的情况&#xff0c;锁的竞争度会较低&#xff0c;并发度相对较高。但是如果where条件里的字段没有加索引&…

OpenCV 形态学相关函数详解及用法示例

OpenCV形态学相关的运算包含腐蚀(MORPH_ERODE)&#xff0c;膨胀(MORPH_DILATE)&#xff0c;开运算(MORPH_OPEN)&#xff0c;闭运算(MORPH_CLOSE)&#xff0c;梯度运算(MORPH_GRADIENT)&#xff0c;顶帽运算(MORPH_TOPHAT)&#xff0c;黑帽运算(MORPH_BLACKHAT)&#xff0c;击中…

AI产品经理:基于大模型Agent的客服实践,更低的成本与更大的收益

现在AI客服已经在各行业普遍使用了&#xff0c;但是实际效果并不如意——用户宁愿等人工客服&#xff0c;也不愿意找AI客服解决问题。如果给当前的AI客服换成大模型&#xff0c;效果会不会更好一些&#xff1f;这篇文章&#xff0c;我们来看看作者的思考。 一、为什么要用大模型…

Python 从入门到实战30(高级文件的操作)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了操作目录的相关知识。今天我们将学习一下高级文…

一文学会 Java 8 的Predicates

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 在这份详细的指南中&#xff0c;您将了解 Java Predicates&#xff0c;这是 Java 8 中一个新颖且有用的特性。本文解释了 Java Predicates 是什么以及如何在各种情况下使用它们。 在这份详尽的指南中…