小白到运维工程师自学之路 第六十集 (docker的概述与安装)

一、概述

1、客户(老板)-产品-开发-测试-运维à项目周期不断延后,项目质量差。

随着云计算DevOps生态圈的蓬勃发展,产生了大量优秀的系统和软件。软件开发人员可以自由选择各种软件应用环境。但同时带来的问题就是需要维护一个非常庞大的开发(Dev)、测试(Test)、预上线(UAT)和生产环境(Pro)。面对这种情况,Docker容器技术横空出世、提供了简单、灵活、高效的解决方案,不需要过多地改变现有的使用习惯,就可以和已有的工具进行整合。因此,掌握Docker相关技术也是途径云计算的必经之路。

Docker是在Linux容器里运行应用的开源容器管理工具,可以理解为轻量级的“虚拟机”。它诞生于 2013 年初,最初是 DotCloud 公司内部商业版项目,后来更换架构师,此架构师将Docker进行了开源,导致Docker使用人员增多。基于 Google公司推出的 Go(Golang) 语言开发。该项目后来加入了Linux基金会,遵从了Apache 2.0协议进行推广,项目代码在 GitHub(https://github.com/docker)上进行维护。

Docker 自开源后受到广泛的业内人士及社区的关注,以至于DotCloud公司后来都改名为 Docker Inc。RedHat系列系统从 RHEL6.5 版本开始支持 Docker;Google 也在其 PaaS 产品中广泛应用。

官方网站:Docker: Accelerated, Containerized Application Development。

2、云计算模式

IAAS 基础设施及服务   Kvm/Docker+Openstack

PAAS 平台即服务       Docker+Kubernetes

SAAS 软件即服务

Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可以看做宿主机,而集装箱可以理解为实现应用相互隔离的容器,每个集装箱中都包含自己的应用程序。正如Docker的设计宗旨一样:Build、Ship and Run Any App、Anywhere,即通过对应用组件的封装、发布、部署、运行等生命周期的管理、达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker在Linux原有的 LXC 技术的基础上进行二次封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。相同的容器类软件还有很多。

传统虚拟化技术结构中底层是服务器硬件,硬件上运行着宿主机的操作系统兼虚拟化平台,通过在虚拟化出硬件设备上部署操作系统,在操作系统之上运行应用服务。而虚拟化出硬件中的操作系统将占用大量的服务器硬件资源浪费。

容器技术技术结构中底层硬件上运行宿主机操作系统,在宿主机操作系统上运行Docker引擎,无需虚拟化硬件,也不用部署操作系统,而是直接运行容器,提供所需的应用服务隔离环境,极大的提高了资源利用率。

3、虚拟化架构:

寄居架构 VMware Workstation

原生架构 VMware ESXI

作为一种新兴的虚拟化方式, Docker 跟传统的虚拟化方式相比具有众多的优势。

Docker 容器的启动可以在秒级实现,相比传统的虚拟机方式要快很多。Docker核心解决的问题是利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源,所以Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而保证应用性能的同时,减小系统开销,使得在一台主机上同时运行数千个Docker容器成为可能;Docker操作方便,还可以通过Dockerfile配置文件支持灵活的自动化创建Docker镜像。

4、Docker的使用场景

Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大的提高了工作效率。例如:项目从腾讯云迁移阿里云,如果采用了Docker容器技术,迁移只需要在新的云服务器上启动项目需要的容器即可。

、Docker的优点

1、快速的交付和部署

对(DevOps)人员来说,最希望的就是项目环境一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套项目开发容器,代码开发完成之后,运维人员可以直接此容器打包迁移。Docker可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker将会大量地节约开发、测试、部署的时间。

2、更高效的虚拟化

Docker容器的运行不需要额外的管理系统支持,它是内核级的虚拟化,并且容器调用的是宿主机的bin和lib。因此可以实现更高的性能和效率。

3、更轻松的迁移和扩展

Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。

4、简单的管理

使用 Docker只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

、Docker的核心概念

1、镜像(Image)

镜像是创建容器的基础,镜像类似传统虚拟机的快照,可以理解为是一个面向Docker容器引擎的只读模板。比如:一个镜像可以包含一个完整的 CentOS 操作系统环境,里面仅安装了 Apache的应用程序(称之为Apache镜像)或用户需要的其它应用程序。

Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像(堆叠),用户甚至可以直接从其他人那里获取一个已经做好的镜像来直接使用。

2、容器(Container)

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。多个容器之间都是相互隔离的、保证了应用平台的安全性。可以把容器看做是一个正在运行的简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的一个或一组应用程序。Docker容器用来运行和隔离应用地方。

3、仓库(Repository)

仓库是集中存放镜像的地方。通常会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的官方镜像供用户下载。国内的公开仓库有Docker Pool等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

四、Docker的安装(这里主要安装linux版本的)

Docker支持在主流的操作系统平台上使用,包括Windows系统、Linux系统及MacOS系统等。目前最新的RedHat 、CentOS、Ubuntu等操作系统官方软件源中都已经默认自带了Docker包,可以直接安装使用,也可以用Docker自己的YUM源进行配置。

Docker发行版本:

  1. Docker-EE 企业版 (企业版由于投入较大国内大多数用的都是社区版)
  2. Docker-CE 社区版 (社区版是docker开源的一款软件国内使用的主流)

 1、Windows安装Docker

运行DockerToolbox-1.11.2

                             

一路下一步

                                   

所有都安装

 

点击完成

 

运行Docker Quickstart Terminal

 

2、Linux安装Docker

CentOS系统下安装Docker可以有两种方式:一种是使用curl获得Docker的安装脚本进行安装,另一种是使用YUM仓库来安装Docker。主要注意的是目前Docker只能支持64位系统。

iptables -F                  关闭防火墙
setenforce 0
systemctl stop firewalld
ping www.baidu.com           测试是否可以联网(需要联网)
yum -y install docker        安装docker
systemctl start docker       启动docker
systemctl enable docker      设置为开机自启
docker version               查看docker版本

 

 安装docker-ce

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce

阿里云镜像加速器(由于docker是谷歌公司旗下的产物,不设置镜像源的话下载速度会很慢)

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://cr.console.aliyun.com/

vim /etc/docker/daemon.json            为docker指定下载源
{
        "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}
END

systemctl daemon-reload                刷新
systemctl restart docker               重启

 五、Docker基础操作

docker verion              查看版本
docker info                查看详细信息

Docker镜像操作

Docker创建容器前需要本地存在对应的镜像,如果本地加载不到相关镜像,Docker默认就会尝试从镜像仓库https://hub.docker.com下载,这是由Docker官方维护的一个公共仓库,可以满足用户的绝大部分需求,用户也可以通过配置来使用自定义的镜像仓库。

1、docker search //从Docker Hub搜索镜像

命令格式:docker search 关键字

参数:

--automated=false 仅显示自动创建的镜像

--no-trunc=false  输出信息不截断显示

-s, --stars=0  指定仅显示评价为指定星级以上的镜像

docker search nginx   这里以nginx做测试

2、获取镜像

搜索到符合需求的镜像,可以使用docker pull 命令从网络下载镜像到本地使用。

命令格式:docker pull 镜像名称[:标签]

对于Docker镜像来说,如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为latest,也可以通过指定的标签来下载特定版本的某一镜像。这里标签就是用来区分镜像版本的。

docker pull nginx

 3、查看镜像信息

使用docker images命令查看下载到本地的所有镜像。

命令格式:docker images 仓库名称[:标签]

docker images 

4、获取镜像的详细信息

命令格式:docker inspect 镜像名或镜像ID

docker inspect

 5、为镜像添加新的标签

命令格式:docker tag 名称[:标签] 新名称[:新标签]

docker tag nginx nginx:test

6、删除镜像

使用docker rmi 命令可以删除多余的镜像。

删除镜像的操作有两种方法:使用镜像的标签删除镜像;使用镜像的ID删除镜像。

命令格式:

docker rmi 镜像名称[:标签]

docker rmi 镜像ID

 docker rmi nginx:test

以上就是docker的基础操作

如有错误欢迎各位大佬批评指正,我们共同进步

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS】ArkTS 组件内转场动画,动画播放时颜色异常问题

【关键字】 HarmonyOS、ArkTS、组件内转场动画、颜色异常 【问题描述】 根据组件内转场动画文档中示例编写代码,使用动画转场组件button,并给button设置背景色让button透明度为0,实现动画转场时,会先出现默认蓝色button&#xf…

Ai创作系统ChatGPT源码搭建教程+附源码

系统使用Nestjs和Vue3框架技术,持续集成AI能力到本系统! 更新内容: 同步官方图片重新生成指令 同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle) 同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom out 1.5x 新增GP…

Java使用hive连接kyuubi

一、Maven依赖 <dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>2.3.9</version> </dependency> 二、相关配置信息 驱动类&#xff1a;org.apache.hive.jdbc.HiveDriver连接UR…

海外网红营销:如何利用故事打造独具魅力的品牌形象?

随着全球数字化时代的来临&#xff0c;品牌推广已经从传统的广告宣传方式逐渐转变为更加注重故事性和情感共鸣的营销手段。故事营销在品牌塑造和传播过程中发挥着重要作用&#xff0c;它能够吸引消费者的注意力&#xff0c;加深品牌与受众的情感连接&#xff0c;从而为品牌带来…

单元测试框架中测试用例的执行顺序

一、用例用例全部执行与选择执行 单元测试用例的执行顺序按照定义的用例的名称的编码大小&#xff0c;从小到大依次执行&#xff0c;因此一般通过后缀001、002...等来规划测试用例的执行顺序&#xff0c;例如&#xff1a; import unittestclass F1(unittest.TestCase):def set…

3D Tiles官方示例资源下载链接

本文列出Cesium官方提供的 3D Tiles 1.0和1.1规范的9个示例切块集&#xff08;tileset&#xff09;。 有关如何使用本地服务器托管这些示例的详细信息&#xff0c;请参阅 INSTRUCTIONS.md。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 1、Metadata Granularities …

【java线上监控】Arthas由菜鸟到菜鸡

目录 1 arthas介绍 1.1 简介 1.2 背景 1.3 Arthas&#xff08;阿尔萨斯&#xff09;能为你做什么&#xff1f; 2 window环境搭建 2.1 下载和启动 2.1 启动后&#xff1a;选择需要监控的服务 3 快速入门 3.1 打开浏览器 3.2 开启trace请求 3.3 查看 dashboard 3.6.…

在人间烟火里,卡萨帝开启品牌新征程

大暑刚过天正热&#xff0c;尤其是在今年厄尔尼诺现象席卷太平洋的背景下&#xff0c;人们对空调的需求持续“升温”。CCTV2财经频道《正点财经》在专题报道中提到&#xff0c;6月国内空调产销两旺&#xff0c;同比增长均在35%以上。 炙热的天气下&#xff0c;南方居民有更加难…

fiddler 手机抓包(含https) 完整流程

第一部分&#xff1a;下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】&#xff0c;并下载fiddler 安装包。 二.fiddler安装包下载成功后&#xff0c;将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下&#xff0c;双击文件夹中的【fidd…

哈工大计算机网络课程局域网详解之:交换机概念

哈工大计算机网络课程局域网详解之&#xff1a;交换机概念 文章目录 哈工大计算机网络课程局域网详解之&#xff1a;交换机概念以太网交换机&#xff08;switch&#xff09;交换机&#xff1a;多端口间同时传输交换机转发表&#xff1a;交换表交换机&#xff1a;自学习交换机互…

【SCSS】网格布局中的动画

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"container">&l…

RabbitMQ 教程 | 第3章 客户端开发向导

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

什么是云原生和 CNCF?

一、CNCF简介 CNCF&#xff1a;全称Cloud Native Computing Foundation&#xff08;云原生计算基金会&#xff09;&#xff0c;成立于 2015 年 12 月 11 日&#xff0c;是一个开源软件基金会&#xff0c;它致力于云原生&#xff08;Cloud Native&#xff09;技术的普及和可持续…

Docker中gitlab以及gitlab-runner的安装与使用

1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner&#xff0c;并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用&#xff0c;本文未讲述https配置&#xff0c;如有需求&#xff0c;可自行百度 3、Docker如何安装可以自行百度 一、Docker安…

保姆级教程,Linux服务器docker搭建jenkins持续集成一键部署SpringBoot项目(Gradle)

前言&#xff1a; 在后台项目开发过程从Java延伸到Kotlin开发&#xff0c;从maven pom到gradle&#xff0c;IDEA新项目SpringBoot init框架官方推荐kotlingradle&#xff0c;本章以此为jenkins持续集成做项目部署&#xff0c;服务器为Centos&#xff0c;JDK 17&#xff0c;Spr…

【C++】文件操作(囊括特殊情况:读文件遇到的空格被跳过、“文件只读一次“)

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】文件操作&#xff08;囊括特殊情况&#xff1a;读文件遇到的空格被跳过、“文件只读一次”&#xff09; website&#xff1a;黑马程序员C date&#xff1a;2023年7月31日 目录 文本文件 写文件 源…

如何在面试IT公司时展现出色的表现

在面试IT技术岗位的过程中&#xff0c;展现出色的表现是至关重要的。下面我将分享一些我个人的经验和观察&#xff0c;希望对大家有所帮助。 首先&#xff0c;提前准备是非常重要的。在面试前&#xff0c;你应该充分了解目标公司的业务和技术需求。这样你就能更好地回答面试官…

基于Java+SpringBoot+Vue前后端分离电商项目

晚间lucky为友友们送福利啦~&#x1f381; Tips&#xff1a;有需要毕业设计指导的童鞋一定要认真看哦&#xff0c;文末有彩蛋。 一.项目介绍 该电商项目是一个简单、入门级的电商项目&#xff0c;是基于JavaSpringBootVue前后端分离项目。前端采用两套独立的系统分别完成项目…

手机的python怎么运行文件,python在手机上怎么运行

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机上的python怎么运行程序&#xff0c;手机的python怎么运行文件&#xff0c;今天让我们一起来看看吧&#xff01; 1、python程序怎么在手机上运行 python语言应用很广泛&#xff0c;自己也很喜欢使用它&#xff0c;其…

【机器学习】Cost Function for Logistic Regression

Cost Function for Logistic Regression 1. 平方差能否用于逻辑回归&#xff1f;2. 逻辑损失函数loss3. 损失函数cost附录 导入所需的库 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_logistic_loss import plt_logistic_cost, plt_two_…