入门Docker1: 容器技术的基础

目录

服务器选型

虚拟机

基于主机(物理机或虚机)的多服务实例

基于容器的服务实例

Docker

Docker三要素

Docker安装

Docker基本使用

基本操作

仓库+镜像

容器


服务器选型

在选择服务器操作系统时, Windows 附带了许多您需要付费的功能。
Linux 是开放源代码,可让用户免费使用。
对比
Linux 是开源的,因此是免费的。 Web 主机仅需要支付技术支持即可安装和维护程序(如果需
要)。服务器提供商不需要将额外的成本转嫁给客户。另一方面,对于 Windows 服务器,公司通常
必须为操作系统和定期使用许可证付费。
Linux 服务器及其运行的应用程序通常设计为精益运行,因此通常使用较少的计算机资源。好处是
程序员可以 即时 修改 Linux 服务器和软件,而无需重新启动,这在 Windows 环境中是不可能的。
Microsoft
Windows 服务器在多数据库任务下趋向于变慢,崩溃的风险更高。
Linux Windows 更安全。尽管没有哪个系统能幸免于黑客和恶意软件的攻击,但是 Linux 往往是
一个低调的目标。由于 Windows 运行着世界上大多数软件,因此,黑客们渴望获得低挂的果实
Windows

虚拟机

虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
微服务的部署策略
部署单体应用意味着运行大型应用的多个相同副本,通常提供若干台( N )服务器(物理机或虚拟
机),在每台服务器上运行若干个( M )应用实例。部署单体应用并不总是简单明了,但还是比部署微
服务应用简单。
微服务应用由几十甚至数百个服务组成。服务用不同的语言和框架写成,每个都是一个小应用,包括特
定的部署、资源、扩展和监控需求,例如,根据服务需求运行若干数量的服务实例。
此外,每个服务实例必须配套提供适当的 CPU 、内存 和 I/O 资源。更具挑战性的是,尽管如此复杂,部
署服务还必须快速、可靠和性价比高。

基于主机(物理机或虚机)的多服务实例

基于主机的多服务实例 模式是最为传统的应用程序部署方法。
在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。
此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程
中运行多个服务实例。
优点 : 由于多个服务实例使用的是同一服务器、及其操作系统,因此它们的资源使用效率相对较
高。
不足 :
除非每个实例都是一个单独的进程,否则您对服务实例的实际控制权并不大。而且,您无法
限制每个实例能够使用到的资源比例。这将带来主机内存被大量消耗的隐患。
如果多个服务实例在同一进程中运行,它们之间会缺乏隔离关系。这通常会导致在相同进程
中,某个行为异常的服务能够直接影响、甚至中断其他的服务。
由于运营团队需要了解服务的详细信息,因此在部署期间,他们可能发生人为错误的风险较
高。显然,开发和运营团队之间需要通过必要的信息交换,来尽可能地消除复杂性。

基于容器的服务实例

在这种部署模式下,每个服务实例都运行在其各自的容器中,因此也被称为操作系统级别的虚拟化机制。
使用这一模式时,用户将服务打包为容器镜像。每个容器镜像就是一个文件系统镜像,由应用和运行服
务所需的库构成。有的容器镜像还包括完整的 Linux 根文件系统,有的则更轻量。
以部署 Java 服务为例,构建的容器镜像包括 Java 运行时、 Apache Tomcat 服务器、以及编译好的 Java
应用。
一旦将服务打包为容器镜像,就启动一到多个容器。通常每个物理机或虚拟主机上会运行多个容器,会
用到 Kubernetes Marathon 这样的集群管理工具来管理容器。
集群管理工具把主机看做资源池,根据每个容器需要的资源和每个主机上可用的资源来调度容器。
容器的优点与虚拟机类似,服务实例之间完全隔离,也能轻松监控每个容器的资源消耗。

Docker

Docker 是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。
虚拟机与容器的区别
VM(VMware) 在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;
Container(Docker 容器 ) ,在宿主机器、宿主机器操作系统上创建 Docker 引擎,在引擎的基础上再安装应用。

Docker三要素

Docker镜像
Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用 程序镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载 一 个已经做好的镜像来直接使用。
Docker仓库
仓库是集中存放镜像文件的场所。
有时候会把仓库和仓库注册服务器( Registry )混为一谈,并不严格区分。实际上,仓库注册服务器上
往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的 标签(tag )。
仓库分为公开仓库( Public )和私有仓库( Private )两种形式。
最大的公开仓库是 Docker Hub ,存放了数量庞大的镜像供用户下载。
当然,用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。 Docker 容器Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
2. 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容
3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构

Docker安装

Docker 支持运行 CentOS 版本: CentOS 7.X
内核版本检查 : uname - r
卸载可能存在的旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
旧版本的 docker 叫做 docker 或者 docker-engine ,如果有安装,先卸载其以及其依赖,新版本的
docker 叫做 docker-ce
docker-ce (社区版,免费)
docker-ee (专业版,收费)
安装必要的系统工具 : yum install - y yum - utils device - mapper - persistent - data lvm2
添加 docker-ce 安装源 : yum - config - manager -- add - repo
https://download.docker.com/linux/centos/docker - ce.repo
配置阿里云 Docker Yum : yum - config - manager -- add - repo
http://mirrors.aliyun.com/docker - ce/linux/centos/docker - ce.repo
更新 yum 缓存 : yum makecache fast
yml.pid 占用 : -- rm - f /var/run/yum.pid
安装 docker-CE: yum - y install docker - ce
1 )默认安装的是最新版本的稳定版
2 )查看版本列表请使用如下命令:
yum list docker-ce --showduplicates | sort -r
3 )如果要安装特定版本的 docker-CE 请使用如下命令格式:
yum install docker-ce

Docker基本使用

基本操作

查看服务状态
systemctl status docker
启停服务
systemctl start docker
systemctl stop docker
systemctl restart docker
开机自启
systemctl enable docker
systemctl disable docker

仓库+镜像

Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下
(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像库
配置加速器 ( 通过阿里云控制台获得加速地址 )
vi /etc/docker/daemon.json
{
"registry-mirrors":["你的阿里云专属加速器地址"]
}
重新加载 daemon
systemctl daemon-reload
重启 docker
systemctl restart docker
搜索镜像
docker search 镜像名称
下载镜像
docker pull 镜像名
获取一个 centos 系统的基础镜像可以使用如下的命令:
docker pull centos (未指定版本一般会使用latest(最新的)版本)
docker pull centos:版本号 (或者直接指定版本)

 查看宿主机上的镜像

docker images
查看image位置
cd /var/lib/docker/containers (/var/lib/docker为docker默认安装目录) && ll
docker rmi 镜像 ID/ 标签
docker rmi centos
docker rmi -f centos:latest
如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。
正确做法:先删除依赖该镜像的所有容器, 再来删除镜像

容器

容器是 Docker 的另一个核心概念。简单来说,容器是镜像的一个运行实例。
镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态
创建容器
docker create -it centos:latest
docker create -it --name centos01 centos:latest
centos:latest 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否
存在指定的镜像,
不存在就从公有仓库下载
-it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端
--name:指定生成的容器的名字,允许空,如果不指定会自动生成
启动、停止、重启容器
docker start 容器ID|name|name:tag
docker stop 容器ID|name|name:tag
docker restart 容器ID|name|name:tag
查看当前的容器
docker ps
docker ps -a
删除容器
docker rm 容器ID
docker rm -f 容器ID
进入容器
docker exec -it 容器ID/容器NAME /bin/bash
docker exec -it 容器ID/容器NAME bash (简写)
退出容器
退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】
如果不想继续运行:按【ctrl+d】或输入exit

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

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

相关文章

Could not find annotations-4.9.0.jar 异常

问题 org.gradle.internal.resolve.ArtifactNotFoundException: Could not find annotations-4.9.0.jar (com.github.bumptech.glide:annotations:4.9.0).原因 解决方式 repositories {google()//谷歌放前面jcenter()//放在谷歌后面}更换顺序后确实没问题了 参考文章 https:…

Python接口自动化测试项目实战

1.1 接口测试项目搭建 1.1.1 教育局招生管理系统部署 教育局招生管理系统是基于javamysql,下面介绍它的部署过程。 1.从我的网盘下载部署文件。 2.安装jdk以及配置环境变量。 点击 文件进行安装。 下一步下一步直接安装。 本人的安装路径是C:\Program Files\Java\jdk1.7.…

解决Vue 3 + Element Plus树形表格全选多选以及子节点勾选的问题

目录 前言 问题概述 解决方案 1. 创建树形表格 2. 实现全选功能 3. 实现多选功能 4. 实现子节点勾选 5. 实现父节点勾选 总结 前言 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊解决Vue 3 Element Plus树形表格全选多选以及子节…

【MATLAB】EEMD+FFT+HHT组合算法

代码原理 EEMD(经验模态分解)FFT(快速傅里叶变换)HHT(希尔伯特-黄变换)组合算法是一种常用的信号处理和分析方法。这个组合算法包含了EEMD、FFT和HHT三个步骤,可以用于处理非线性和非平稳信号。…

小程序中使用微信同声传译插件实现语音识别、语音合成、文本翻译功能----语音识别(一)

官方文档链接:https://mp.weixin.qq.com/wxopen/plugindevdoc?appidwx069ba97219f66d99&token370941954&langzh_CN#- 要使用插件需要先在小程序管理后台的设置->第三方设置->插件管理中添加插件,目前该插件仅认证后的小程序。 语音识别…

了解Dubbo配置:优先级、重试和容错机制的秘密【五】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 了解Dubbo配置:优先级、重试和容错机制的秘密【五】 前言Dubbo高级配置概述不同配置覆盖关系重试与容错处理机制负载均衡机制 前言 Dubbo作为一款强大的分布式服务框架,其高级…

(2024,分数蒸馏抽样,Delta 降噪分数,LoRA)PALP:文本到图像模型的提示对齐个性化

PALP: Prompt Aligned Personalization of Text-to-Image Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 4. 提示对齐方法 4.1 概述 4.2 个性化 4.3 提示对齐分数抽…

报表生成器FastReport .Net用户指南:数据源与“Data“窗口

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 FastReport.NET官方版…

央视推荐的护眼灯是哪款?教育部认可护眼灯品牌

许多家长一般都会给孩子买上许多学习用品,比如现在一些学习桌椅、读写笔灯等等,配有蛮多的学习用具,但对孩子学习时用的护眼台灯很忽略,没有给孩子选好真正合格好用的护眼台灯,就容易让孩子的视觉形成偏差,…

Pixel手机进入工程模式、是否是Version版本?

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

APP加固原理与作用

文章目录 引言正文1. 什么是APP加固,加固原理是什么?2. 加固的作用是什么?加固后是否完全不会被破解?3. 如何提前规避加固新版本可能带来的风险?4. 付费加固与免费加固的区别是什么? 白嫖的混淆加密工具总结…

代码随想录刷题笔记(DAY11)

今日总结:继续准备期末,今天的算法题目比较简单,晚上看看能不能再整理一篇前端的笔记。 Day 11 01. 有效的括号(No. 20) 题目链接 代码随想录题解 1.1 题目 给定一个只包括 (,),{&#xff…

Android-常用数据结构和控件

HashMap 的原理 HashMap 的内部可以看做数组链表的复合结构。数组被分为一个个的桶(bucket)。哈希值决定了键值对在数组中的寻址。具有相同哈希值的键值对会组成链表。需要注意的是当链表长度超过阈值(默认是8)的时候会触发树化,链表会变成树形结构。 把握HashMap的…

5 - 声明式事务

传统事务流程: Connection connection JdbcUtils.getConnection(); try {//1. 先设置事务不要自动提交connection.setAutoCommit(false);//2. 进行各种 crud//多个表的修改,添加 ,删除select from 商品表 > 获取价格//修改用户余额updat…

“确定要在不复制其属性的情况下复制此文件?”解决方案(将U盘格式由FAT格式转换为NTFS格式)

文章目录 1.问题描述2.问题分析3.问题解决3.1 方法一3.2 方法二3.3 方法三 1.问题描述 从电脑上复制文件到U盘里会出现“确定要在不复制其属性的情况下复制此文件?”提示。 2.问题分析 如果这个文件在NTFS分区上,且存在特殊的安全属性。那么把它从NT…

请查收“链上天眼”2023年成绩单

1月10日是中国人民警察节,是一份责任,更一份安心,随着科技的发展,链上安全领域的技术与工具不断更新迭代,更加安全的Web3世界正在构建。 根据欧科云链安全团队统计,2023 年全球范围内利用虚拟货币进行诈骗…

Radzen Blazor Studio 脚手架框架解读

背景 组织管理管理准备使用Blazor这个工具实现,因为其有对应的 scaffold 脚手架,先构建数据库,然后通过向导,生成CRUD以及对应的接口,那么有必要看一下,其内部的代码结构是什么样的。 结构 接口层 有两类…

Python——for循环的嵌套

用Python坚持表白一百天,每天都送10朵花,一百天表白成功! i1 for i in range(1,101):print(f"今天是表白的第{i}天,坚持ing")for j in range(1,11):print(f"送给你第{j}朵玫瑰花")print("小美我喜欢你&…

Hive 的 安装与使用

目录 1 安装 MySql2 安装 Hive3 Hive 元数据配置到 MySql4 启动 Hive5 Hive 常用交互命令6 Hive 常见属性配置 Hive 官网 1 安装 MySql 为什么需要安装 MySql? 原因在于Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户…

Mindspore 公开课 - prompt

prompt 介绍 Fine-Tuning to Prompt Learning Pre-train, Fine-tune BERT bidirectional transformer,词语和句子级别的特征抽取,注重文本理解Pre-train: Maked Language Model Next Sentence PredictionFine-tune: 根据任务选取对应的representatio…