docker 技术的介绍和安装(一)
文章目录
- 一、文章参考
- 二、why Docker
- 软件开发环境搭建的问题
- 解决办法(虚拟机)
- 解决办法(Linux 容器)
- 虚拟机 VS linux 容器
- 三、linux 容器的封装技术 —— Docker
- Docker 优势
- Docker 应用场景
- Docker 概念
- 镜像与容器的关系?
- 四、基于阿里云服务器( CentOS 7.X) 安装与启动
- 安装问题
- 安装步骤
- 安装思维导图概览
- 安装的分布操作
一、文章参考
- Docker 入门教程 ruanyifeng
- Docker 快速入门
二、why Docker
软件开发环境搭建的问题
- 软件正常运行依赖操作系统和软件运行的环境,包括:
- 操作系统的环境和版本兼容 (centOS6 和 centOS7, windows 和 Linux)
- 软件的安装环境和版本兼容 (JDK1.6 和 JDK1.8, tomcat6 和 tomcat8)
- 任何一个条件出差错都有可能导致软件无法正常运行
- 如果换了一台机器,就需要重新安装搭建环境,容易出错而且低效
解决办法(虚拟机)
很好的解决了操作系统的版本和兼容问题,但有如下缺点:
- 占用资源多
- 冗余步骤多
- 启动慢
- 创建的个数受到硬件的限制
解决办法(Linux 容器)
Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
由于容器是进程级别的,相比虚拟机有很多优势:
- 启动快
- 暂用资源少
- 体积小
虚拟机 VS linux 容器
特性 | Docker | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
交付/部署 | 开发、测试、生产环境一致 | 无成熟体系 |
性能 | 近似物理机 | 性能损耗大 |
体量 | 极小(MB) | 较大(GB) |
迁移/扩展 | 跨平台,可复制 | 较为复杂 |
三、linux 容器的封装技术 —— Docker
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
Docker 优势
- 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题。
- 更快速的启动时间:可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
- 隔离性:避免公用的服务器,资源会容易受到其他用户的影响。
- 弹性伸缩,快速扩展:善于处理集中爆发的服务器使用压力。
- 迁移方便:可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
- 持续交付和部署:使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。
Docker 应用场景
- 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
- 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
- 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
Docker 概念
镜像与容器的关系?
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。
四、基于阿里云服务器( CentOS 7.X) 安装与启动
安装问题
安装docker遇到:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
解决办法参考
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
yum install docker-ce docker-ce-cli containerd.io
安装步骤
安装思维导图概览
安装的分布操作
1、使用 root 权限登录 Centos。确保 yum 包更新到最新。(非必须)
$ sudo yum update
2、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源(阿里镜像)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装Docker
sudo yum install docker-ce
- 验证
docker -v
- 替换docker源地址
sudo vim /etc/docker/daemon.json
注意: 起初是没有这个文件的,需要启动之后才会创建,所以在启动docker 之后再修改文件
{"registry-mirrors":["https://t88rlg2k.mirror.aliyuncs.com"]
}
- 启动
sudo systemctl start docker
验证
systemctl status docker
- 停止
systemctl stop docker
验证
systemctl status docker
- 重启
sudo systemctl restart docker
docker 技术的介绍和安装(一)相关推荐
- Docker的简单介绍与安装(Windows10)
目录 1.什么是Docker 2.Docker的应用场景 3.Docker 的优点 4.Docker 架构 5.Doker安装 Win10 系统 开启 Hyper-V 1.安装 Toolbox 2.运 ...
- docker第一章--介绍和安装
转载于:https://www.cnblogs.com/caiciadeliliang/p/10993278.html
- 「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四) 上次说了fiddl ...
- 《Docker技术入门与实战》——2.3 本书环境介绍
本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.3节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- docker介绍和安装以及常用命令
介绍 Docker是基于Go语言实现的云开源项目. 一次镜像,处处运行 传统的部署项目环境配置相当麻烦,换一台机器,就要重来一次,费力费时. Docker的主要目标是"一次镜像,随处运行&q ...
- 《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. PS :个人所有读书笔记只记录个人想要的内容,很可能原书大量内容没有纳入笔记中... ... 以下全 ...
- TTS技术简单介绍和Ekho(余音)TTS的安装与编程
TTS技术简单介绍和Ekho(余音)TTS的安装与编程 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.TTS技术简单介绍: TTS技术,TTS是Text ...
- docker的介绍、安装、镜像命令
一. 为什么要使用 Docker 1.1Docker 容器虚拟化的好处 在云时代,开发者创建的应用必须要能很方便地在网络上传播,也就是说应用必须脱离底层物理硬件的限制: 同时必须满足"任何时 ...
- ekho tts 下载_TTS技术简单介绍和Ekho(余音)TTS的安装与编程
TTS技术简单介绍和Ekho(余音)TTS的安装与编程zouxy09@qq.comhttp://blog.csdn.net/zouxy09 一.TTS技术简单介绍:TTS技术,TTS是Text To ...
最新文章
- [转]URL汉字编码问题(及乱码解决)
- oracle active data guard概述
- Android系统如何实现UI的自适应
- 什么是python扩展库_什么是目前比较常用的Python扩展库管理工具
- 数据看穿一生:前半生赚钱养娃,后半生赚钱买命
- shared_ptr,weak_ptr使用最广范的智能指针
- WPF引用外部类库中的资源文件提示不能找到的解决方法
- linux用户间文件互传,linux之间的文件互传-scp命令
- C | 扫雷游戏完整版
- 关闭Dynamipsgui的自动更新
- ssh 登录linux xsell 登录Linux 提示用户密钥登录怎么解决
- PPT里面如何插入斜体文字
- Altium Designer--如何添加泪滴
- Word不能编辑文档怎么办,文档修改了不能保存怎么办
- 1447D Catching Cheaters
- linux下固态硬盘ssd优化
- linux多字节错误,在Linux中解压缩时遇到多字节字符的问题
- 365值得吗 office_对于一个大学生来说,Office365是否值得购买?
- python:性能优化(一)
- 实验电子商城 mvc设计思想简介
热门文章
- java分布式系统是什么意思,什么是分布式系统
- 注册安全工程师成绩出来了吗,注安成绩公布日期2023
- initialize php,关于_initialize()的详细介绍
- FDTD_学习笔记1_sio2镀膜/交互界面初始/结构设置/仿真区域设置/光源选取/监视器的作用/script 文本编辑窗口/sweep optimize
- php 给GIF动图加水印,怎么给gif动态图片添加水印
- html5未来五年就业前景,未来5年的就业市场会怎样?未来五年发展前景最好的行业...
- typescript keyof 和 typeof 用法
- bionic linker代码分析(1) - linker自举
- 浅谈(Java)NIO-IO多路复用
- [工具]EMAGNET:从Pastebin上传的泄漏数据库中捕获电子邮件地址和密码