文章目录

  • 一、Docker 初了解
    • 1.1、什么是Docker?
      • 1.1.1、容器 vs 虚拟机
    • 1.2、了解docker三个重要概念
    • 1.3、Docker的优势
  • 二、Docker架构
    • 2.1、docker组件
    • 2.2、docker的架构解读
  • 三、docker部署及优化
    • 3.1、docker安装
    • 3.2、镜像优化
    • 3.3、网络优化

一、Docker 初了解

1.1、什么是Docker?

  • docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
  • docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux或Windows机器上,也可以实现虚拟化
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。
  • Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker

    想了解更深入的docker知识,可以看官方文档,网址:docs.docker.com

1.1.1、容器 vs 虚拟机

从下图可以看出,VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。
Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。

由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。

但Docker目前还不够完善,比如隔离效果不如VM,共享宿主机操作系统的一些基础库等;网络配置功能相对简单,主要以桥接方式为主;查看日志也不够方便灵活。



Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。
Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多;Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

1.2、了解docker三个重要概念

1、image镜像

  • docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下周一个已经做好的镜像来直接使用

2、container容器

  • docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行再其中的应用程序

3、repostory仓库

  • 仓库是集中存储镜像文件的沧桑,registry是仓库主从服务器,实际上参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)

  • 仓库分为两种,公有参考,和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。

1.3、Docker的优势

1、更快速的交付和部署

  • 开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
  • 运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。
  • 企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。

2、更高效的虚拟化

  • Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

3、更轻松的迁移和扩展

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

4、更简单的管理

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

二、Docker架构

2.1、docker组件

在这个架构图中,可以看到docker的重要组件。

  • Docker Client:客户端
  • Docker Daemon:守护进程
  • Docker Images:镜像
  • Docker Container:容器
  • Docker Registry:镜像仓库

2.2、docker的架构解读

1、用户使用Docker Client客户端与Docker Daemon守护进程建立通信,并发送自己的一些请求给后者。

2、Docker Daemon 首先提供Server的功能接受Docker Client 的请求,docker Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。

3、在Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动 graphdriver 将下载镜像以Graph的形式存储。当需要为Docker创建网络环境时,通过网络管理驱动 networkdriver 创建并配置Docker容器网络环境;当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver来完成。

而libcontainer是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。当执行完运行容器的命令后,一个实际的Docker容器就处于运行状态,该容器拥有独立的文件系统,独立并且安全的运行环境等。

三、docker部署及优化

3.1、docker安装

1、关闭防火墙,设置开机不启动

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2、安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

3、设置阿里云docker镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


4、安装Docker-CE,开启docker服务并设置开机自启

yum install -y docker-cesystemctl start docker.service
systemctl enable docker.service

3.2、镜像优化

直接下载镜像,速度很慢,而一般镜像有比较大,所以我们进行镜像加速,使用阿里云的源,即开启阿里云的镜像加速

tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://6fr2rj44.mirror.aliyuncs.com"]
}
EOF//加载daemon进程,重启服务
systemctl daemon-reload
systemctl restart docker

3.3、网络优化

开启路由转发

vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -pservice network restart
systemctl restart docker

到这里,我们的docker安装优化已经完成!
下一篇博客将继续docker的学习。

Docker之入门初了解、部署与镜像加速、网络优化相关推荐

  1. 【云原生 · Docker】入门篇:安装、镜像加速

    目录

  2. docker安装部署dragonfly2镜像加速服务

    Dragonfly安装部署文档 ​ Dragonfly 作为龙蜥社区的镜像加速标准解决方案,是一款基于 P2P 的智能镜像和文件分发工具.它旨在提高大规模文件传输的效率和速率,最大限度地利用网络带宽. ...

  3. Docker(六):Docker 仓库管理与镜像加速

    Docker 仓库管理 仓库(Repository)是集中存放镜像的地方.以下介绍一下 Docker Hub.当然不止 docker hub,只是远程的服务商不一样,操作都是一样的. Docker H ...

  4. [第五篇]——Docker 镜像加速

    Docker 镜像加速 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.Docker 官方和国内很多云服务商都提供了国内加速器服务,例如: 科大镜像:https://doc ...

  5. Windows 10安装Docker ToolBox,修改镜像默认地址,配置镜像加速

    Windows 10安装Docker ToolBox,修改镜像默认地址,配置镜像加速 一.首先需要下载Git,下载链接 https://git-scm.com/download/win 安装过程中设置 ...

  6. 理论+实操:docker入门初体验,申请阿里镜像加速器

    文章目录 一:Docker概述 1.1 docker概念: 1.2 docker设计的目标: 1.3 docker的组成: 1.4 docker的使用场景 1.5 docker版本: 二: docke ...

  7. 将jar包部署在docker上,将jar包打成镜像,使用docker部署jar包

    假设你已经准备好以下东西,即可进行服务部署 一台安装好docker的linux服务器(安装docker见安装docker) 准备好的jar包 接下来开始吧! 将jar包上传至服务器(建好文件夹存放以方 ...

  8. docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像

    为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis. 搭建Springboot项目,编写Dockerfile,打包构建镜像. 简单使用dock ...

  9. Docker自定义部署Redis镜像

    一. DOCKER介绍 Docker简介 (1)Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源. (2)Docker 可以让开发者打包他们的应用以及依赖包到 ...

最新文章

  1. java常用的集合对象_java常用实体类、集合类
  2. 基于SuperMap Objects写的GoogleMap地图切割程序(二)
  3. Git代码同时push到GitHub和Gitee(码云)
  4. 【本周面试题】第5周 - 开发工具相关
  5. 链表逆序的原理及实例
  6. Jquery操作Table
  7. HTTPS之SSL处理过程,对此加密和非对称加密
  8. 电信充q币短信怎么发_移动、联通、电信话费快来领!微信小额提现免手续费方法!刚需羊毛!...
  9. aws lambda_在AWS Lambda上运行“ Hello World”
  10. 2021-06-25绝对定位的理解
  11. 分享一个免费开源的视频录制软件(OBS)
  12. 音乐API(仅测试使用)
  13. Node.js模拟登录强智科技教务系统
  14. 使用yocs_velocity_smoother对机器人速度进行限制
  15. EDK II编译过程
  16. mybatis之StatementHandler
  17. 2020.1.16 Java数组基础
  18. golang开发常用软件设置整理
  19. 商业银行基础知识 银行测试工程师必会的业务知识
  20. 计算机教室档案 设备损坏赔偿,关于印发《湖北工业大学工程技术学院仪器设备损坏丢失赔偿处理办法》的通知...

热门文章

  1. java淘宝客开发(二)
  2. 可以修改APP数据库(图标、名称、背景等)的简单方法
  3. 第五章 类的继承和super的使用调用父类构造方法
  4. 【病虫害识别】基于matlab GUI SVM病虫害识别系统【含Matlab源码 2429期】
  5. MyBatis 常用标签简单总结
  6. 中小型医院基础网络解决方案
  7. MATLAB 计算带有给定变量的方程
  8. Python 创建一个二维列表
  9. XTU 2021计网期中测试-冰冰的逆序数
  10. Houdini湖边小屋-使用到的节点及VEX Fuction(更新中)