Docker 三要素

news2024/9/21 19:46:50

文章目录

      • Docker 简介
      • Docker客户端
      • Docker服务器
      • Docker 镜像
      • Docker 容器

Docker 简介

学习完容器的相关概念,开始学习docker的核心组件分别是Docker客户端、Docker服务器、Docker镜像、Docker容器、仓库。

学习之前,我们先思考一个问题,目前开发面临着怎样的挑战?

随着系统在架构上的调整,已经变得非常复杂了,之前采用的三层架构,开发将代码告诉运维,运维打包好后部署在几台物理服务器上,暴露出的问题很少,而今天随着应用的增多,各类的服务比如MQ、DB、Redis、应用等,为了方便管理,这些不同的服务有可能会部署到不同的环境,一方面这些服务有所依赖的库和软件包,另一方面存在多种部署环境,这就产生了一个问题:如何让这些服务不用考虑运行环境的因素,能够顺利的运行?

docker的出现正是解决了类似的问题,它的思想将各类软件打包,为代码提供了一个基于容器标准化运输系统。将任何应用及其所依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。

对于开发人员: Build Once 、Run Anywhere,开发人员只需要为应用创建一次运行环境。然后打包成容器便可在其他机器上运行。

对于运维人员: Configure Once、Run Anything
只需要配置好标准的runtime运行环境、服务器就可以运行任何容器。容器消除了开发、测试、生产环境的不一致性,提高工作效率。

Docker采用的是Client/Server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。

Docker客户端

Docker客户端最常用的就是docker命令,如docker image docker run等。

Docker服务器

Docker服务器指的是docker 运行在服务器上的后台进程
如systemctl status docker.service
在这里插入图片描述

Docker 镜像

可将Docker镜像看成只读模板,通过它可以创建Docker容器。
镜像有多种生成方法:

(1)从无到有开始创建镜像;
(2)下载并使用别人创建好的现成的镜像;
(3)在现有镜像上创建新的镜像。
它也相当于是一个root文件系统。比如官方镜像 centos:7 就包含了完整的一套 centos:7 最小系统的 root 文件系统

镜像命令
docker images
列出本机镜像
在这里插入图片描述

各个选项说明:

REPOSITORY:表示镜像的仓库源 TAG:镜像的标签版本号 IMAGE ID:镜像ID CREATED:镜像创建时间
SIZE:镜像大小

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

·

OPTIONS说明: ·
-a :列出本地所有的镜像(含历史映像层) ·
-q :只显示镜像ID

扩展
· docker search 某个XXX镜像名字
在这里插入图片描述

在这里插入图片描述
OPTIONS说明:

· – limit : 只列出N个镜像,默认25个 · docker search --limit 5 redis

如搜索Mysql5.0版本只显示点赞数最多的前5个
在这里插入图片描述

docker pull

docker pull 某个XXX镜像名字 · 下载镜像 · docker pull 镜像名字[:TAG] ·
docker pull 镜像名字 · 没有TAG就是最新版 · 等价于 · docker pull 镜像名字:latest
docker pull ubuntu

例:拉取redis:5.0版本的镜像

docker pull redis:5.0

在这里插入图片描述

扩展

docker system df 查看镜像/容器/数据卷所占的空间

docker images 的镜像相加等于 docker system df 的镜像所占空间
在这里插入图片描述

常用命令

·    docker rmi 某个XXX镜像名字ID
·    删除镜像
·    删除单个
·    docker rmi  -f 镜像ID
·    删除多个
·    docker rmi -f 镜像名1:TAG 镜像名2:TAG
·    删除全部
·    docker rmi -f $(docker images -qa)

扩展:

什么是docker虚悬镜像是什么?

仓库名、标签都是的镜像,俗称虚悬镜像dangling image,容器有时候在构建过程中的不成功会产生 虚悬镜像。

Docker 容器

从镜像容器角度,可以把容器看做是一个简易版的 Linux
环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。 Docker容器就是Docker镜像的运行实例。

用户可以通过CLI(Docker)、停止、移动或删除容器。可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。

镜像与容器的关系
镜像相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。
在这里插入图片描述

容器常用命令

· docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

--name="容器新名字"       为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互)-P: 随机端口映射,大写P
-p: 指定端口映射,小写p

在这里插入图片描述

启动交互式容器(前台命令行)

使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it centos /bin/bash

参数说明:

-i: 交互式操作。
-t: 终端。
centos : centos 镜像

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit:

列出当前所有正在运行的容器

·    docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。

启动已停止运行的容器

·    docker start 容器ID或者容器名
·    重启容器
·    docker restart 容器ID或者容器名
·    停止容器
·    docker stop 容器ID或者容器名

强制停止容器

·    docker kill 容器ID或容器名
·    删除已停止的容器
·    docker rm 容器ID
·    一次性删除多个容器实例
·    docker rm -f $(docker ps -a -q)
·    docker ps -a -q | xargs docker rm

仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。

类似于 Maven仓库,存放各种jar包的地方; github仓库,存放各种git项目的地方;
Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 Docker
Hub(https://hub.docker.com/), 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等

Docker常用命令

帮助启动类命令

  1. 启动docker: systemctl start docker
  2. 停止docker: systemctl stop docker
  3. 重启docker: systemctl restart docker
  4. 查看docker状态: systemctl status
  5. docker 开机启动: systemctl enable docker 查看docker概要信息: docker info
  6. 查看docker总体帮助文档: docker --help 查看docker命令帮助文档: docker 具体命令 --help

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

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

相关文章

如何关闭“若要接收后续google chrome更新,您需使用windows10或更高版本”

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Policies\Google\Chrome] "SuppressUnsupportedOSWarning"dword:00000001 如何关闭“若要接收后续 google chrome 更新,您需使用 windows 10 或更高版本” - 知乎

影视公司技术流程设计之服务器搭建

在影视公司,硬件的投入占相当大的比例, 大到存储, 服务器,工作站, 小到主机CPU,内存,显卡,手绘板。 而存储又是硬件上的大头,一套合理的存储解决方案,优为关键…

render和h函数的使用

// 如果没有配置项,则可以省略不写 {}h("div", [h(h-tooltip, // 在tooltip中进行改造// ----- h-tooltip 的配置项 -----Start{props: {placement: "top-start",// content: 提示内容,transfer: true},style: {overflow: hidden,text-overflow…

信安通用基础知识

文章目录 密码学经典误区PGP优良保密协议信安经典其它安全手段XSS与CSRF cross site request forgeryCSRF的利用逻辑CSRF示例CSRF防范检查Referer字段添加校验token XSS cross site scripting common weakness enumeration常见密码api误用(摘自毕设参考文献&#xf…

Java面试题目汇总

一、面向对象的三个基本特征 2、方法重载和方法重写的概念和区别 3、接口和内部类、抽象类的特性 4、文件读写的基本类 **5、串行化的注意事项以及如何实现串行化 6、线程的基本概念、线程的基本状态以及状态之间的关系 7、线程的同步、如何实现线程的同步 8、几种常用的数据结…

如何仿写简易tomcat 实现思路+代码详细讲解

仿写之前,我们要搞清楚都要用到哪些技术 自定义注解,比如Tomcat使用的是Servlet,我们可以定义一个自己的MyServlet构造请求体和返回体,比如tomcat使用HttpRequest,我们可以自己定义myHttpRequestjava去遍历一个指定目…

华为网络篇 单区域OSPF-32

难度1复杂度1 目录 一、相关原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、相关原理 OSPF(Open Shortest Path First)是一种链路状态路由协议,它是由IETF的OSPF工作组开发的公有协议,所有的厂商都可以使用它。相比静…

算法01 跟左神刷题01

题目一 给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度 返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住。 题的理解 贪心也行, 然后比如绳子的最右端到了973 绳子长度为100 而这是个有序数组…

Docker是什么, 为什么这么火

Docker本质 Docker 本质其实是 LXC 之类的增强版,它本身不是容器,而是容器的易用工具。容器是 linux 内核中的技术,Docker 只是把这种技术在使用上简易普及了。Docker 在早期的版本其核心就是 LXC 的二次封装发行版。 Docker 作为容器技术的一…

LLM 回答更加准确的秘密:为检索增强生成(RAG)添加引用源

如何让你的大模型变得更强?如何确定其获取信息来源的准确性? 想要回答这两个问题,就不得不提到今天文章的主角——RAG。RAG,也就是检索增强生成(Retrieval-augmented generation) ,可以弥补现有 LLM 应用能…

WPF CommunityToolkit.Mvvm

文章目录 前言ToolkitNuget安装简单使用SetProperty,通知更新RealyCommandCanExecute 新功能,代码生成器ObservablePropertyNotifyCanExecuteChangedForRelayCommand其他功能对应关系 NotifyPropertyChangedFor 前言 CommunityToolkit.Mvvm(…

“去哪儿旅行”Java工程师内推资格——直入笔试,圆你大厂梦,放心啦,来源可靠,给你的梦想提提速!

岗位信息 Java开发工程师(2024) 所在地:北京市海淀区 工作职责: 按照需求,负责技术平台或业务支持系统的设计、维护,以及代码开发工作; 根据开发规范编写各种开发文档及项目文档; 协助需求方进行技术调研; 不断提高产品的代码质量,参与…

详解C#-static void Main(string[] args)

目录 简介: 举例: 输出结果:​编辑 总结: 简介: 在C#中static void Main(string[] args)这个句话有什么作用,分别代表什么意思!! 这句话是入口函数的声明,指定了C#程序的入口点,并定义了一个名为”Mai…

虹科分享 | 温度边缘效应对冻干成品含水量的影响(上)——原理和现象

01 冻干流程简介 生物制药成品的冻干过程通常包括以下三个步骤: 预冻(Freezing) 在冻干过程中,首先需要将生物制药成品冷冻至非常低的温度,通常在-40℃至-80℃之间。这有助于将水分转变为冰晶,减少冻干过…

低成本高收益,五金店小程序的秘密武器

如今,随着移动互联网的快速发展,小程序成为了许多企业进行线上业务拓展的重要方式之一。对于那些不懂代码的人来说,制作一个小程序可能会让人觉得困难重重。但是,现在,借助乔拓云平台,不懂代码的人也能轻松…

BUUCTF [安洵杯 2019]easy_serialize_php 1 详细讲解

题目来自buuctf&#xff0c;这是一题关于php序列化逃逸的题 1. 题目 题目给出的代码 <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); }if($_S…

JVM——类文件结构

文章目录 一 概述二 Class 文件结构总结2.1 魔数2.2 Class 文件版本2.3 常量池2.4 访问标志2.5 当前类索引,父类索引与接口索引集合2.6 字段表集合2.7 方法表集合2.8 属性表集合 一 概述 在 Java 中&#xff0c;JVM 可以理解的代码就叫做字节码&#xff08;即扩展名为 .class …

File 类的用法, InputStream和Reader, OutputStream和Writer 的用法

前言 普通的文件长这样&#xff1a; 其实目录也是一种特殊文件&#xff1a; 一、文件前缀知识 &#xff08;一&#xff09;绝对路径和相对路径 以盘符开头的的路径&#xff0c;叫做绝对路径&#xff0c;如&#xff1a;D:\360Downloads\cat.jpg 以.或..开头的路径&#xff0c…

iOS UIAlertController控件

ios 9 以后 UIAlertController取代UIAlertView和UIActionSheet UIAlertControllerStyleAlert和UIAlertControllerStyleActionSheet。 在UIAlertController中添加按钮和关联输入框 UIAlertAction共有三种类型&#xff0c;默认&#xff08;UIAlertActionStyleDefault&#xff0…

网络通信原理计算IP地址都网络号 主机范围 可用个数(第四十四课)

计算192.168.1.1的网络号ID IP 地址中计算=⇒网络ID计算:默认网络位不变 注解位全0 一 IP地址的网络ID 方法一 192.168.1.1 为例 IP地址的网络号ID 11000000.10101000.00000001.00000001 1111111.11111111.11111111.00000000 逻辑与运算 (二进制) = 192.168.1.0 (十进制) …