初识容器Docker

目前使用 Docker 基本上有两个选择:Docker DesktopDocker EngineDocker Desktop 是专门针对个人使用而设计的,支持 Mac 和 Windows 快速安装,具有直观的图形界面,还集成了许多周边工具,方便易用。
不是太推荐使用Docker Desktop,原因有两个。第一个,它是商业产品,难免会带有 Docker 公司的“私人气息”,有一些自己的、非通用的东西,不利于我们后续的 Kubernetes 学习。第二个,它只是对个人学习免费,受条款限制不能商用,我们在日常工作中难免会“踩到雷区”。
Docker Engine则和Docker Desktop正好相反,完全免费,但只能在 Linux 上运行,只能使用命令行操作,缺乏辅助工具,需要我们自己动手 DIY 运行环境。不过要是较起真来,它才是Docker当初的真正形态,“血脉”最纯正,也是现在各个公司在生产环境中实际使用的 Docker 产品,毕竟机房里 99% 的服务器跑的都是 Linux。
sudo apt install -y docker.io安装docker。
在这里插入图片描述

完成之后如下图:
在这里插入图片描述

sudo systemctl start docker启动docker
在这里插入图片描述

sudo systemctl status docker可以看到状态是active (running)
在这里插入图片描述

sudo usermod -aG docker ${USER}把当前用户加入docker组,退出系统(命令 exit ),再重新登录一次,这样才能让修改用户组的命令 usermod 生效。
因为我使用的是root用户,所以不用执行。

sudo docker version会输出 Docker 客户端和服务器各自的版本信息:
在这里插入图片描述
可以看到,我使用的是Docker Engine 24.0.5,系统是Linux,硬件架构是amd64

sudo docker info会显示当前 Docker 系统相关的信息,例如 CPU、内存、容器数量、镜像数量、容器运行时、存储文件系统等等。
在这里插入图片描述

sudo docker info显示的这些信息,对于我们了解 Docker 的内部运行状态非常有用。

docker ps,它会列出当前系统里运行的容器,就像我们在 Linux 系统里使用 ps 命令列出运行的进程一样。
在这里插入图片描述

所有的 Docker 操作都是这种形式:以 docker 开始,然后是一个具体的子命令,之前的docker versiondocker info也遵循了这样的规则。你还可以用help或者--help来获取帮助信息,查看命令清单和更详细的说明。

docker pull,从外部的镜像仓库(Registry)拉取一个 busybox 镜像(image),你可以把它类比成是 Ubuntu 里的“apt install”下载软件包,docker pull busybox拉取busybox镜像。
在这里插入图片描述

docker images列出当前 Docker 所存储的所有镜像。
在这里插入图片描述

可以看到,命令会显示有一个叫busybox的镜像,镜像的 ID 号是一串 16 进制数字a416a98b71e2,大小是 4.26MB。

docker run busybox echo hello world输出计算机世界最著名的语句“hello world”。
在这里插入图片描述

docker ps -a列出来所有的镜像。

在这里插入图片描述

Docker 的架构

下面的这张图来自 Docker 官网(https://docs.docker.com/get-started/overview/),精准地描述了 Docker Engine 的内部角色和工作流程,对我们的学习研究非常有指导意义。
在这里插入图片描述
刚才我们敲的命令行 docker 实际上是一个客户端 client ,它会与 Docker Engine 里的后台服务 Docker daemon 通信,而镜像则存储在远端的仓库 Registry 里,客户端并不能直接访问镜像仓库。

Docker client 可以通过 build、pull、run等命令向 Docker daemon 发送请求,而 Docker daemon 则是容器和镜像的“大管家”,负责从远端拉取镜像、在本地存储镜像,还有从镜像生成容器、管理容器等所有功能。

所以,在 Docker Engine 里,真正干活的其实是默默运行在后台的 Docker daemon,而我们实际操作的命令行工具“docker”只是个“传声筒”的角色。
Docker 官方还提供一个“hello-world”示例,可以为你展示 Docker client 到 Docker daemon 再到 Registry 的详细工作流程,你只需要执行这样一个命令docker run hello-world

它会先检查本地镜像,如果没有就从远程仓库拉取,再运行容器,最后输出运行信息:
在这里插入图片描述

此文章为10月Day 5学习笔记,内容来源于极客时间《Kubernetes 入门实战课》

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

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

相关文章

摩尔信使MThings的实时数据曲线

摩尔信使MThings配备了毫秒级的实时数据录波功能,提供了多种展示模式,包括:固定时间范围、示波器等; 用户可以添加实时数据警戒线,直观呈现异常数据; 用户可以灵活的缩放、拖动曲线数据,可以指…

Django CSRF Bypass

自存用 Django CSRF Bypass (CVE-2016-7401) 漏洞分析

C++对象模型(17)-- 构造函数语义学:成员初始化列表

1、必须用初始化列表的场景 (1)成员变量是引用类型,必须在初始化列表中初始化。 (2)成员变量是const类型,必须在初始化列表中初始化。 (3)如果类继承自一个父类,并且父…

前端自学需要把大量时间放在 HTML、CSS 吗?

前言 html和css其实不需要花费太多的时间,html暂且不说,css各类的属性太多了,平时如果只是简单做一些小网站根本不需要全部掌握,只需要掌握一些基础常用的即可,一般遇到不会的也可以直接查文档,就我个人来…

主打的就是一蠢

var x "abc"; // 不清楚x的用途function a(b, c, d) {// 一堆未注释的代码...// ... }// 混合使用单引号和双引号 var message "Its a beautiful day!";fetch("https://xxx/api/data").then(response > response.json()).then(data > {/…

三级等保-linux服务器三权分立设置

安全问题 安全控制点 风险分析 风险等级 标准要求 加固建议 服务器未严格按照系统管理员权限、审计管理员权限、安全管理员权限进行分配管理员账户,未实现管理员用户的最小权限划分。 访问控制 可能存在管理员越权操作的风险 中 d)应授予管理用户所需的最…

Vue3 实现文件预览 Word Excel pdf 图片 视频等格式 大全!!!!

先上效果图 插件安装 先说 word 文件是docx-preview插件 excel文件是用 xlsx 插件 介绍后端返回的数据 因为在拦截器处 做了对数据的处理 最后你调接口拿到的数据是 一个对象 里面包含: url : blob对象转换的用于访问Blob数据的临时链接。这个链接可以被用于在网页中展示…

pytorch分布式数据训练结合学习率周期及混合精度

文章目录 1、SPAWN方式2、torchrun 方式 正如标题所写,我们正常的普通训练都是单机单卡或单机多卡。而往往一个高精度的模型需要训练时间很长,所以DDP分布式数据并行和混合精度可以加速模型训练。混精可以增大batch size. 如下提供示例代码,经…

Spring MVC(一)【什么是Spring MVC】

重点 Spring:IOC 和 AOP 。 Spring MVC :Spring MVC 的执行流程。 SSM 框架的整合! Spring 和 Mybatis 我们不建议使用太多注解,Spring MVC 建议全部使用注解开发! 1、MVC 回顾 1.1、什么是MVC MVC是模型(Model)…

chrome历史版本下载

chrome历史版本下载 windows Google Chrome all versions on Windows linux版本 Google Chrome 64bit Linux版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒

软件架构风格总结以及场景应用

目录 前言1. 数据流风格2. 调用/返回风格3. 独立构件风格4. 解释器风格5. 仓库风格 前言 软件架构风格可以几个大类: 数据流风格:有批处理风格、管道-过滤器调用/返回风格:有主程序/子程序、面向对象、层次结构等独立构件风格:有…

藏在超级应用背后的逻辑和哲学

众所周知,Elon Musk 想将 Twitter 重新设计定位成一款“超级应用 - X”的野心已经不再是秘密。伴随着应用商店中 Twitter 标志性的蓝鸟 Logo 被 X 取代后,赛博世界充满了对这件事情各种角度的探讨与分析。 Musk 曾经无数次通过微信这一样本来推广他的“超…

Linux:命令行参数和环境变量

文章目录 命令行参数环境变量环境变量的概念常见的环境变量PATH 环境变量表本地变量和环境变量命令分类 本篇主要解决以下问题: 什么是命令行参数命令行参数有什么用环境变量是什么环境变量存在的意义 命令行参数 在学习C语言中,对于main函数当初的写…

iOS开发UITableView的使用,区别Plain模式和Grouped模式

简单赘述一下 的创建步骤 // 创建UITableView self.tableView [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; // 设置数据源和代理 self.tableView.dataSource self; self.tableView.delegate self; // 注册自定义UITableViewCe…

【数据结构】830+848真题易错题汇总(自用)

【数据结构】830848易错题汇总(10-23) 文章目录 【数据结构】830848易错题汇总(10-23)选择题填空题判断题简答题:应用题:算法填空题:算法设计题:(待补) 选择题 1、顺序栈 S 的 Pop(S, e)操作弹出元素 e,则下列(C )是正…

数组中指针不同加1的区别

#include <iostream> int main(){int a[5] {1,2,3,4,5};int* p (int*)(&a1);printf("%d",*(p-1)); // 这段代码会输出4 }原因&#xff1a; array和&array的值是一样的&#xff0c;但是他们代表的意义完全不一样&#xff0c;array是数组首元素的首地址…

Android中使用Glide加载圆形图像或给图片设置指定圆角

一、Glide加载圆形头像 效果 R.mipmap.head_icon是默认圆形头像 ImageView mImage findViewById(R.id.image);RequestOptions options new RequestOptions().placeholder(R.mipmap.head_icon).circleCropTransform(); Glide.with(this).load("图像Uri").apply(o…

最新Tuxera NTFS2024破解版mac读写NTFS磁盘工具

Tuxera NTFS for Mac是一款Mac系统NTFS磁盘读写软件。在系统默认状态下&#xff0c;MacOSX只能实现对NTFS的读取功能&#xff0c;Tuxera NTFS可以帮助MacOS 系统的电脑顺利实现对NTFS分区的读/写功能。Tuxera NTFS 2024完美兼容最新版本的MacOS 11 Big Sur&#xff0c;在M1芯片…

php文本转语音功能插件

当前插件集成了百度文本转语音功能,支持laravel 9版本以上. 下载方式: 1、通过composer下载:composer require yreborn/laravel-speech 2、在composer.json 新增 “yreborn/laravel-speech”: “dev-main”&#xff0c;在命令行使用composer install进行安装 1、创建config/…

Oracle数据库 ORA-28001: the password has expired解决方法

今天在用dbvisualizer登录数据库的时候&#xff0c;报了the password has expired的错误&#xff0c;于是上网查了一下原因&#xff0c;是因为数据库密码过期了&#xff0c;因为默认的是180天。 解决方法&#xff1a; 1&#xff09;用系统用户登录 #在cmd终端输入&#xff1…