当前位置:首页 > CN2资讯 > 正文内容

docker linux 就是Linux虚拟机 linux和docker

18小时前CN2资讯


一、Docker介绍

“Docker”一词来自英国口语,意为码头工人(Dock Worker),即从船上装卸货物的人。通常技术人员说的 Docker是指 Docker引擎,其实Docker也可以指Docker公司或者Docker开源项目(该项目在2017年正式命名为Moby项目)。

1、什么是Docker?

Docker自2013年以来非常火热,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 -- 百度百科

Docker是基于 Go 语言并遵从 Apache2.0 协议开源的。基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用。

Docker使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。命令行运行docker命令的时候,需要本机有 Docker 服务处于开启状态。

一句话来讲:

Docker是一个开源的应用容器引擎,开发人员可以使用容器开发、部署/交付和运行应用程序到任何平台中去。

开发者构建应用程序时,可将它与其依赖环境一起打包到一个容器中。然后可以批量发布到任何平台上运行。

 

2、Docker 引擎主要有两个版本:企业版(EE)和社区版(CE)。

Docker引擎是用于运行和编排容器的基础设施工具。

Docker引擎是是容器最核心的东西,其他Docker公司或第三方的产品都是围绕Docker引擎进行开发和集成的。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),社区版本会提供4个月的支持,而企业版本会提供12个月的支持。并且Docker 版本号采取新的格式:遵循-xx格式,例如,2018 年6月第一次发布的社区版本为18.06.0-CE。个人开发者社区版(CE)就可以了。

3、Docker 的优点

Docker 是一个用于开发,交付和运行应用程序的开放平台。

Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

1. 快速,一致地交付您的应用程序

Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。

容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:

  • 您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。
  • 他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。
  • 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
  • 测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

2. 响应式部署和扩展

Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

3. 在同一硬件上运行更多工作负载

Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。

 

4、Docker 的用途

Docker 的主要用途,目前有三大类。

(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

 

5、Docker的三大核心概念:镜像(Image)、容器(Container)和仓库(Repository)

1. 镜像(Image):

对于 Linux 而言,操作系统分为内核和用户空间,内核启动后,会挂载 root 文件系统为其提供用户空间支持。

镜像就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。

镜像是创建Docker容器的基础。

2. 容器(Container):

容器的存在离不开镜像的支持,它是镜像运行时的一个载体。容器可以被创建、启动、停止、删除、暂停等。这些容器彼此之间相互隔离、互不可见的。

镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。

3. 仓库(Repository):

Docker 的仓库和 git 的仓库比较相似,拥有仓库名、tag。在本地构建完镜像之后,即可通过仓库进行镜像的分发。

最大的公开仓库是官方提供的Docker Hub(https:///),其中存放着数量庞大的镜像供用户下载。

国内的有阿里云(https://cr.console.aliyun.com/)、腾讯云等仓库的本地源,可以提供稳定的国内访问。

根据所存储的镜像是否公开分享,Docker 仓库可以分为公开仓库(Public) 私有仓库(Private) 两种形式。
 

 

二、Linux下安装Docker

官网文档(https://docs.docker.com/)上都有详细说明,不同版本以官方文档为准。

这里在Centos7上 yum安装Docker,要求Linux系统能上外网。 

1、基础的安装的准备

1. 未安装gcc时,则输入:yum -y install gcc

[root@centos7 ~]# rpm -q gcc gcc-4.8.5-36.el7.x86_64 [root@centos7 ~]# gcc -v 使用内建 specs。 COLLECT_GCC=gcc ........

2. 未安装gcc-c++时,则输入:yum -y install gcc-c++

[root@centos7 ~]# rpm -q gcc-c++ 未安装软件包 gcc-c++ [root@centos7 ~]# yum -y install gcc-c++ 已加载插件:fastestmirror ....... [root@centos7 ~]# rpm -q gcc-c++ gcc-c++-4.8.5-36.el7.x86_64

4. 卸载老版本,卸载命令从官网上拷贝,输入: 

[root@centos7 ~]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 已加载插件:fastestmirror 参数 docker 没有匹配 参数 docker-client 没有匹配 参数 docker-client-latest 没有匹配 参数 docker-common 没有匹配 参数 docker-latest 没有匹配 参数 docker-latest-logrotate 没有匹配 参数 docker-logrotate 没有匹配 参数 docker-engine 没有匹配 不删除任何软件包

5、安装支持 yum-config-manager命令的支持工具,输入:yum install -y yum-utils

[root@centos7 ~]# yum install -y yum-utils

2、安装Docker    

1. 设置Docker的 yum源为阿里云

注意:

不要用官网上的仓库( https://download.docker.com/linux/centos/docker-ce.repo),服务器在国外很慢。

这里使用国内镜像,如阿里云:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

下载下来可以看一下

设置Docker的yum源,镜像使用阿里云,输入: 

[root@centos7 ~]# ls /etc/yum.repos.d/ CentOS7.repo [root@centos7 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 已加载插件:fastestmirror adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo [root@centos7 ~]# ls /etc/yum.repos.d/ CentOS7.repo docker-ce.repo

2. 更新yum源的缓存,输入:

[root@centos7 ~]# yum makecache fast 已加载插件:fastestmirror Loading mirror speeds from cached hostfile CentOS7 | 3.6 kB 00:00:00 docker-ce-stable | 3.5 kB 00:00:00 (1/2): docker-ce-stable/x86_64/primary_db | 45 kB 00:00:00 (2/2): docker-ce-stable/x86_64/updateinfo | 55 B 00:00:00 元数据缓存已建立

3. 安装 Docker CE,输入:

[root@centos7 ~]# yum -y install docker-ce docker-ce-cli containerd.io 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 containerd.io.x86_64.0.1.2.13-3.2.el7 将被 安装 --> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 containerd.io-1.2.13-3.2.el7.x86_64 需要 ---> 软件包 docker-ce.x86_64.3.19.03.12-3.el7 将被 安装 --> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 3:docker-ce-19.03.12-3.el7.x86_64 需要 ---> 软件包 docker-ce-cli.x86_64.1.19.03.12-3.el7 将被 安装 --> 解决依赖关系完成 错误:软件包:3:docker-ce-19.03.12-3.el7.x86_64 (docker-ce-stable) 需要:container-selinux >= 2:2.74 错误:软件包:containerd.io-1.2.13-3.2.el7.x86_64 (docker-ce-stable) 需要:container-selinux >= 2:2.74 您可以尝试添加 --skip-broken 选项来解决该问题 您可以尝试执行:rpm -Va --nofiles --nodigest

很遗憾,报错了,解决报错container-selinux >= 2:2.74,输如下面几个命令:

[root@centos7 ~]# yum -y install wget [root@centos7 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@centos7 ~]# yum install epel-release [root@centos7 ~]# yum install container-selinux

然后继续执行安装docker命令:

[root@centos7 ~]# yum -y install docker-ce docker-ce-cli containerd.io

 

4. 启动Docker

[root@centos7 ~]# systemctl start docker [root@centos7 ~]# systemctl status docker # 关闭: systemctl stop docker

5. 查看下Docker的版本信息。输入:

[root@centos7 ~]# docker version Client: Docker Engine - Community Version: 19.03.12 API version: 1.40 Go version: go1.13.10 Git commit: 48a66213fe Built: Mon Jun 22 15:46:54 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.12 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 48a66213fe Built: Mon Jun 22 15:45:28 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683

 

环境:centos最小化安装,会出现一些命令无法自动补全的情况,例如在docker images 无法自动补全 images命令。
出现这种情况的可参考以下操作:安装软件bash-*。

# yum install bash-* -y

注意:安装好软件bash-*之后,不能立即生效,需要重启系统才能生效。

在 Centos7上使用yum安装Docker搞定,中间出了点小插曲,感谢其他博主的文章。

 

 

参考文章:

Docker 入门教程

 

—— Stay Hungry. Stay Foolish. 求知若饥,虚心若愚。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25535.html

    分享给朋友:

    “docker linux 就是Linux虚拟机 linux和docker” 的相关文章

    国外CDN推荐:提升网站速度与安全的选择

    在这个数字化时代,CDN(内容分发网络)的重要性逐渐凸显。许多网站为了提高用户体验,确保内容能够快速、安全地到达用户的设备,纷纷开始引入CDN服务。那么,CDN到底是什么?它的功能和运作原理又是怎样的呢? 简单来说,CDN是一个分布式的网络,旨在提高网站的加载速度和可用性。它通过在全球范围内部署一系...

    LightLayer云服务器评测与应用案例分析

    在我日常工作中,云服务器的选择至关重要,而我最近了解到的LightLayer云服务器,给我留下了深刻的印象。作为Megalayer旗下的品牌,LightLayer在全球多个重要地点部署了服务器,尤其是在美国洛杉矶、中国台湾台北和菲律宾马尼拉。这些选择不仅为用户提供了更快速的访问速度,也为他们的云计算...

    CloudCone邮箱使用指南:申请、设置与故障排除全攻略

    什么是CloudCone邮箱? CloudCone邮箱是隶属于CloudCone主机商的邮箱系统,该公司成立于2014年,主要提供各类主机服务,包括Linux VPS、Windows VPS和独立服务器。CloudCone的业务重心在于美国洛杉矶机房,以其按小时计费的灵活性而受到用户欢迎。这种收费模...

    PumpCloud VPS主机服务解析:注册、设置与价格一站式指南

    PumpCloud是一家自2015年成立以来便致力于提供高效主机服务的公司,让我来分享下其中的一些亮点。它主要在香港和台湾设有数据中心,专注于为用户提供动态VPS服务。相比于国内一些主机商,PumpCloud显得更国际化,主要通过其快速的网络连接和强大的服务基础设施吸引用户。虽然在行业中还算年轻,但...

    Vultr充值优惠活动:享受高性价比云服务的最佳选择

    Vultr概述 当提到云服务,Vultr总是一个热点话题。它从2014年开始运营,迅速在行业内崭露头角。Vultr的目标是为用户提供迅速而灵活的云计算解决方案。在短短几年内,它已经覆盖了全球的多个数据中心,为用户的业务发展提供了强有力的支持。 Vultr注重用户体验,致力于让每一位客户感受到便捷与可...

    黑五促销购物攻略:如何在黑色星期五享受最佳折扣

    在这个充满购物狂欢的季节,黑五促销总是让我充满期待。每年感恩节过后的周五,黑色星期五不仅标志着节日购物季的开始,更成为全球消费者的年度盛典。从一开始的商店门口排长龙,到现在的线上购物狂潮,这一传统已逐渐演变成一个盛大的促销活动。最初,黑五的起源可以追溯到1960年代的美国,那时许多人在节日购物之后,...