热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker的学习笔记(一)

一、废话前言如果你是数据中心或云计算IT圈子的人,我想你一定听过Docker,关于它们的新闻从未间断过。Docker的发展历程虽然算不上太长ÿ

一、废话前言

如果你是数据中心或云计算IT圈子的人,我想你一定听过Docker,关于它们的新闻从未间断过。Docker的发展历程虽然算不上太长,但是自2014年6月Docker 1.0 正式发布,但是Docker确实越来越流行,因为Docker确实很强大。

二、Docker是什么?

简单来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers);目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。Docker则实现了一种应用程序级别的隔离;它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来,它可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

三、Docker的优势?

1)快:运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等)都是以秒或毫秒为单位的。
2)敏捷:像虚拟机一样敏捷,而且会更便宜。
3)灵活:将应用和系统“容器化”,不添加额外的操作系统。
4)轻量:你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。
5)便宜:开源的,免费的,低成本的。由现代Linux内核支持并驱动。轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。
6)生态系统:正在越来越受欢迎,只需要看一看Google的趋势就知道了。

四、Docker的应用场景是什么?

1)应用打包
在传统的基础设施环境下,为了保证所生成的软件包在其它机器上可正常安装且运行,一般需要在打包之前创建个干净的虚拟机,然后在这个干净的环境下安全各种依赖包,然后执行打包脚本。生成软件包以后,需要再创建一个干净的环境安装、运行这个软件包,来验证是否符合预期。这样做无疑耗时耗力,而且容易漏掉一些依赖关系。通过docker就能很好的解决打包问题,首先“干净的打包环境”很容易准备,docker官方提供的ubuntu、centos等系统镜像天生就能作为纯净无污染的打包环境使用,其次Dockerfile本身能起到文档固化的作用,只要写好Dockerfile,创建好打包镜像,以后就能无限次重复使用这个镜像进行打包。

2)多版本混合部署
随着产品的不断更新换代,一台服务器上部署多个应用或者同一个应用的多个版本在企业内部非常常见。但一台服务器上部署同一个软件的多个版本,文件路径、端口等资源往往会发生冲突,造成多个版本无法共存的问题。如果用docker,这个问题将非常简单。由于每个容器都有自己独立的文件系统,所以根本不存在文件路径冲突的问题; 对于端口冲突问题,只需要在启动容器时指定不同的端口映射即可解决问题。

3)升级回滚
一次升级,往往不仅仅是应用软件本身的升级,通过还会包含依赖项的升级。但新旧软件的依赖项很可能是不同的,甚至是有冲突的,所以在传统的环境下做回滚一般比较困难。如果使用docker,我们只需要每次应用软件升级时制作一个新的docker镜像,升级时先停掉旧的容器,然后把新的容器启动。需要回滚时,把新的容器停掉,旧的启动即可完成回滚,整个过程各在秒级完成,非常方便。

4)内部开发环境
在容器技术出现之前,公司往往是通过为每个开发人员提供一台或者多台虚拟机来充当开发测试环境。开发测试环境一般负载较低,大量的系统资源都被浪费在虚拟机本身的进程上了。docker容器没有任何CPU和内存上的额外开销,很适合用来提供公司内部的开发测试环境。而且由于docker镜像可以很方便的在公司内部分享,这对开发环境的规范性也有极大的帮助。


Docker在阿里云服务器安装傻瓜式菜鸟教程

Docker安装菜鸟教程,Centos使用yum安装成功。
https://www.runoob.com/docker/centos-docker-install.html
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。


  1. 通过命令查看你当前的内核版本:
    uname -r
    在这里插入图片描述

  2. 安装 Docker先移除旧的版本:
    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
    在这里插入图片描述

  3. 安装一些必要的系统工具:
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    在这里插入图片描述

  4. 添加软件源信息:
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    在这里插入图片描述

  5. 更新 yum 缓存:
    sudo yum makecache fast
    在这里插入图片描述

  6. 安装 Docker-ce:
    sudo yum -y install docker-ce

  7. 测试安装:
    docker version
    在这里插入图片描述

  8. 安装完成后需要配置镜像加速器:
    因为默认配置的是国外的一种镜像源经常的超时。
    您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

    {"registry-mirrors": ["https://registry.docker-cn.com"]
    }

  9. 保存后重启:
    systemctl restart docker

  10. 查看Docker进程:
    在这里插入图片描述

  11. 卸载Docker:
    sudo yum remove docker-ce
    sudo rm -rf /var/lib/docker(默认安装路径)
    在这里插入图片描述


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
author-avatar
anilshen_333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有