Docker入门和安装教程
一、Docker入门简介
Docker 是一个基于GO语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。
Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
下面对比了Docker 和传统虚拟化(KVM、XEN等)方式的不同之处,容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件的基础上,虚拟出自己的系统,再在系统上部署相关的APP应用。
下图为传统虚拟化方案:

如下为Docker虚拟化方案:

Docker虚拟化有三个概念需要理解,分别镜像、容器、仓库。
- 镜像:docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个样板。
- 容器:使用镜像常见的应用或者系统,我们称之为一个容器。
- 仓库:仓库是存放镜像的地方,分为公开仓库(Public)和私有仓库(Private)两种形式。
Docker虚拟化特点
跟传统VM比较具有如下优点:
- 操作启动快
运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
- 轻量级虚拟化
你会拥有足够的"操作系统",仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。但是传统虚拟化,你虚拟10-20个虚拟机就不错了。
- 开源免费
开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多"容器",注定比VMs要便宜。
- 前景及云支持
正在越来越受欢迎,包括各大主流公司都在推动docker的快速发展,性能有很大的优势。
跟传统VM比较具有如下缺点:
-
目前知道的人比较少
-
相关的技术资料欠缺
-
Go语言还没完全成熟
二、Docker(V18.03)安装配置
OS要求
要安装Docker CE,您需要CentOS 7及以上版本。
卸载旧版本
较旧版本的Docker被称为docker或docker-engine。如果已安装这些,请卸载它们以及相关的依赖项。代码如下
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine`注意 "\"为shell脚本的连接符,同java的"+"
如果系统未安装过docker,则提示如下:

安装Docker CE(社区版,免费)
使用存储库安装
在新主机上首次安装Docker CE之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
1.安装所需的包。yum-utils提供了yum-config-manager ,并且devicemapper存储驱动程序依赖device-mapper-persistent-data和lvm2。
$ sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
执行结果:

2.使用以下命令设置稳定存储库。即使你还想从edge或test存储库安装构建,你仍然需要稳定的存储库。
$ sudo yum-config-manager --add -repo https://download.docker.com/linux/centos/docker-ce.repo
执行结果:

3.(可选)启用edge和test存储库。这些存储库包含在docker.repo上面的文件中,但默认情况下处于禁用状态。您可以将它们与稳定存储库一起启用。
$ sudo yum-config-manager --enable docker-ce-edge$ sudo yum-config-manager --enable docker-ce-test
您可以通过运行带有标志的命令来禁用edge或test存储库 。要重新启用它,请使用该标志。以下命令禁用edge存储库。yum-config-manager``--disable``--enable
$ sudo yum-config-manager --disable docker-ce-edge
注意:从Docker 17.06开始,稳定版本也会被推送到边缘并测试存储库。 安装DOCKER CE
-
安装_最新版本_的Docker CE,或转到下一步安装特定版本:
$ sudo yum install docker-ce
如果提示接受GPG密钥,请验证指纹是否匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,
如果匹配 ,则接受它。
此处确认无误,选择y确定:

指纹比对正确,选择y继续:

最终结果:

2.您还可以使用$ sudo yum install docker-ce-<版本号>来安装指定版本的docker,例如安装17.06版本
$ sudo yum install docker-ce-<17.06>
3.启动Docker。
$ sudo systemctl start docker
注意:docker启动后不会有任何输出
4.docker通过运行hello-world 映像验证是否已正确安装。
$ sudo docker run hello-world
执行命令后如果你看到如下图所示,那么恭喜,docker安装成功!

相关文章:
Docker入门和安装教程
一、Docker入门简介 Docker 是一个基于GO语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会…...
有了java基础,迅速学完Python并做了一份笔记-全套Python,建议收藏
面向过程Python简介Python和Java的解释方式对比Java:源代码 -> 编译成class -> Jvm解释运行Python:源代码 -> Python解释器解释运行我经常和身边的Java开发者开玩笑说:“Java真变态,别的语言都是要么直接编译要么直接解释…...
LeetCode——51. N 皇后
一、题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案…...
jQuery基本操作
学习目标: 会使用基本选择器获取元素 会使用层次选择器获取元素 会使用属性选择器获取元素 会使用过滤选择器获取元素 学习内容: 1.回顾jQuery语法结构 语法 $(selector).action; 工厂函数$():将DOM对象转化为jQuery对象。 选择器 sele…...
基于蜣螂算法优化Kmeans图像分割-附代码
基于蜣螂优化Kmeans图像分割算法 - 附代码 文章目录基于蜣螂优化Kmeans图像分割算法 - 附代码1.Kmeans原理2.基于蜣螂算法的Kmeans聚类3.算法实验结果4.Matlab代码摘要:基于蜣螂优化Kmeans图像分割算法。1.Kmeans原理 K-Means算法是一种无监督分类算法,…...
第二章 Kafka设计原理详解
第二章 Kafka设计原理详解 1、Kafka核心总控制器Controller 在 Kafka 集群中会有一个或者多个 broker,其中有一个 broker 会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。 当某个分区的 leader…...
《NFL橄榄球》:费城老鹰·橄榄1号位
费城老鹰(英语:Philadelphia Eagles)是美国橄榄球联盟在宾夕法尼亚州费城的一支球队。1933年在国家橄榄球联盟扩编时与匹兹堡钢人和辛辛那提红人一起加入;1943年赛季因二次大战的缘故,和匹兹堡钢人作短暂的合并。 在20…...
【人工智能AI】四、NoSQL进阶《NoSQL 企业级基础入门与进阶实战》
帮我写一篇介绍NoSQL的技术文章,文章的标题是《四、NoSQL进阶》,不少于3000字。帮我细化到三级目录,使用markdown格式。这篇文章的目录是: 四、NoSQL 进阶 4.1 NoSQL 高可用 4.2 NoSQL 数据安全 4.3 NoSQL 性能优化 4.4 总结 四、…...
K8S 部署 Jenkins
本文使用 bitnami 镜像部署 Jenkins 官方文档:https://github.com/bitnami/charts/tree/main/bitnami/jenkins 添加 bitnami 仓库 helm repo add bitnami https://charts.bitnami.com/bitnami自定义 values.yaml storageClass:集群的存储类ÿ…...
【人工智能AI】五、NoSQL 应用实践《NoSQL 企业级基础入门与进阶实战》
帮我写一篇介绍NoSQL的技术文章,文章的标题是《五、NoSQL 应用实践》,不少于3000字。目录需要细化到三级目录,使用markdown格式。这篇文章的大的目录是: 五、NoSQL 应用实践 5.1 NoSQL 实时数据分析 5.2 NoSQL 分布式系统 5.3 NoS…...
Java爬虫系列 - 爬虫补充内容+ElasticSearch展示数据
一,定时任务Cron表达式Component public class TaskTest {Scheduled(cron "0/5 * * * * *") // 从0秒开始,每个五秒 执行一次 { 秒 分 时 天 月 周 }public void test(){System.out.println("定时任务执行了");} }二,网…...
Typora常用快捷键
Typora常用快捷键大全 ctrl1到6:1~6级标题,标题用ctrlH是没用的 ctrlshiftk:随时随地插入代码块,极为方便。 ctrlt:创建表格,也可直接输入|列1|列2|列3|并回车来创建表 ctrlshiftq:能实现添加…...
开学季好用电容笔有哪些?好用实惠的电容笔推荐
随着科学技术的快速发展,ipad的影响力越来越大,而且ipad的用户也越来越多,如果要提高ipad的功能,让ipad更加有趣,那么就需要一款非常适合自己,并且非常实用的电容笔。那么,究竟该选择哪个品牌的…...
C++_复习Recording
文章目录C复习课填空题编程题C复习课 试卷说明: 题型: 填空 编程题目 填空题 构造函数无返回类型,与类名同名; 复制构造函数用于创建对象,形实参结合,返回和接收对象。 补充: 只有在声明语句中使用一个变…...
【java】Spring Cloud --Spring Cloud 的核心组件
文章目录前言一、Eureka(注册中心)二、Zuul(服务网关)三、 Ribbon(负载均衡)四、Hystrix(熔断保护器)五、 Feign(REST转换器)六、 Config(分布式配…...
【C++】RBTree——红黑树
文章目录一、红黑树的概念二、红黑树的性质三、红黑树节点的定义四、红黑树的插入五、代码实现一、红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上…...
【5G RRC】5G系统消息SIB2介绍
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...
自托管提醒平台Noted Reminders
什么是 Noted Reminders ? Noted 是一个简单的自托管应用程序,用于创建使用 Apprise API 推送到设备的提醒。您可以向几乎每个平台发送消息,包括定时电子邮件! 什么是 Apprise API ? Apprise 允许您向我们今天可用的几乎所有最流…...
LockSupport常用方法源码分析
前言:本文将介绍LockSupport类中的方法和部分源码,以及面试常问到的一个小问题,感兴趣的大佬可以指点下。 希望能够加深自己的印象以及帮助到其他的小伙伴儿们😉😉。 如果文章有什么需要改进的地方还请大佬不吝赐教&am…...
Mybatis Notes
文章目录1 Mybatis 介绍1.1 快速入门2 JDBC2.1 JDBC介绍2.3 JDBC问题分析2.4 Mybatis与JDBC技术对比3 数据库连接池3.1 数据库连接池介绍3.2 数据库连接池产品产品3.3 Druid引入项目4lombok4.1 lombok介绍4.2 lombok使用4.2.1 在pom.xml文件中引入依赖4.2.2 pojo类代码引入1 My…...
从API调用到完整应用:手把手教你用Dashscope和Streamlit搭建一个多模态聊天机器人
从API调用到完整应用:手把手教你用Dashscope和Streamlit搭建多模态聊天机器人 在AI技术快速落地的今天,将强大的API能力转化为直观可用的产品已成为开发者的核心技能。想象一下,你只需要200行Python代码,就能构建一个能"看懂…...
面试-Linear Attention的学习
Linear Attention 学习笔记 0. Linear Attention 的目的与背景 0.1 标准 Attention 的瓶颈 在 Transformer 的标准 Self-Attention 机制中,注意力分数的计算方式如下: Attention(Q,K,V)=softmax(QKTd)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqr…...
C语言宏定义封装函数参数的工程实践
1. 宏定义封装函数参数的核心价值在嵌入式开发中,我们经常遇到需要传递大量固定参数的场景。以NXP RT1052 SDK中的GPIO配置为例,每个引脚复用配置需要传递6个参数,其中5个都是固定值。这种场景下,宏定义封装技术能显著提升代码的可…...
Jupyter notebook学习容易忘的点
数字数字计算符合常识选择run selected cell就能运行单个块字符串字符串也能计算转义字符\n 表示换行\t 表示tab\\ 表示\ 斜杠本身...
OpenClaw配置优化:千问3.5-9B长任务稳定性提升50%
OpenClaw配置优化:千问3.5-9B长任务稳定性提升50% 1. 问题背景与挑战 去年11月接手一个自动化内容处理项目时,我第一次遭遇OpenClaw长任务执行的"断链"问题。当时需要连续完成"爬取网页→提取关键数据→生成报告→邮件发送"四个步…...
集成学习完全指南:从AdaBoost到随机森林,揭秘为什么一群“弱鸡”能吊打“学霸”
在机器学习领域,单个模型的表现往往受限于其固有的偏差(Bias)和方差(Variance)问题——这就好比一位再厉害的学霸,也难免有自己的知识盲区。集成学习(Ensemble Learning)正是为解决这…...
2025届学术党必备的五大降AI率工具横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要是想降低AIGC检测率,那就得从内容生成与后期修饰这两个关键的方面开始着手。在…...
AGX Orin 部署PyTorch生态:从JetPack适配到torchvision编译避坑指南
1. AGX Orin开发环境初始化 刚拿到AGX Orin开发套件时,很多开发者会直接开始安装PyTorch,但往往忽略了基础环境配置的重要性。我去年在部署一个工业质检项目时就踩过这个坑——当时为了赶进度跳过了JetPack版本检查,结果导致后续torchvision编…...
传统永磁同步电机的FOC离散化simulink模型,效果较好 附赠传递函数离散化推导的文档
传统永磁同步电机的FOC离散化simulink模型,效果较好 附赠传递函数离散化推导的文档,初学者可以入手直接上干货。今天咱们聊聊永磁同步电机FOC控制在Simulink里的离散化实现,重点说说怎么让仿真模型更贴近实际DSP的运行环境。别被那些花里胡哨…...
魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生
魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windo…...
