• Docker手把手教程(一)概述 & 安装


    目录

    一.认识Docker

    二.为什么要使用Docker

    三.虚拟化与Docker

    四.Docker核心概念

    五.Docker安装

    1.centOS联网的问题

    2.安装docker


    一.认识Docker

    1.什么是Docker

    Docker其实就是可以打包程序和运行环境,把环境和程序一起发布的容器。

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
    注意Docker不是容器,它只是负责管理容器,不是虚拟化技术,只是管理虚拟化技术的技术!
    Docker的logo解释:
    标志是一头鲸鱼携带着一堆容器。它正在向您发送这些信息的途中。Docker直译过来是码头工人,然而Docker给人的第一感觉是容器,容器技术英译为Linux Container, Container的直译有 集装箱,容器两个意思。

    2.什么是"集装箱技术"

    我们都知道码头里的集装箱是运载货物用的,它是一种按规格标准化的钢制箱子。集装箱的特色,在于其格式划一,并可以层层重叠, 集装箱与集装箱之间互不影响于是乎, IT 领域借鉴了这一理念,大家就 在想,有没有可能大家只需要关注程序本身 ?
    我们都知道码头里的集装箱是运载货物用的,它是一种按规格标准化的钢制箱子。集装箱的特色, 「在于其格式划一,并可以层层重叠, 集装箱与集装箱之间互不影响」

    概述
    Docker 是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的 Linux 机器上,也可实现虚拟化。

    重心:
    Docker其实就是可以打包程序和运行环境,把环境和程序一起发布的容器。

    二.为什么要使用Docker

    Docker 容器虚拟化的好处
    开发者需要能方便高效构建应用,并且任何时间任何地点都可以获取。

    Docker 在开发和运维中的优势
    对开发和运维 ( DevOps) 人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境、任意时间让应用正常地运行。而 Docker 恰恰是可以实现这一终极目标的瑞士军刀。

    优势:
    • 更快速的交付和部署
    • 更高效的资源利用
    • 更轻松的迁移和扩展
    • 更简单的更新管理(修改dockerfile)
    Docker 与虚拟机比较
    作为一种轻量级的虚拟化方式, Docker 在运行应用上跟传统的虚拟机方式相比具有显著优势。

    三.虚拟化与Docker

    Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。

    虚拟化技术是一个通用的概念 , 在不同领域有不同的理解。在计算领域,一般指的是计算虚拟化或通常说的服务器虚拟化。
    简单的说,「虚拟化」,顾名思义,就是「虚拟」的,是「假」的,是形而上的,是观念上、逻辑上的划分。
    举栗说明
    假设你现在手头上有一套房子,并且你要把它给租出去,租金的市场价是 2000 / 月。那么有没有办法把它租得更贵,获得 6000 元的租金呢?你想到了两个办法:
    1. 找一个不差钱的傻 X 租户,让他每月交 6000 元。
    2. 把房子租给 4 个单身狗,租金为 1500 / / 月。
    虚拟化分类:
    • 完全虚拟化
    • 硬件辅助虚拟化
    • 部分虚拟化
    • 超虚拟机化
    • 操作系统虚拟化

    什么是物理机

    什么是虚拟机
    什么是 Docker

    四.Docker核心概念

    Docker 技术的三大核心概念,分别是:
    • 镜像(Image
    • 容器 (Container)
    • 仓库 (Repository)
    1.Docker 镜像
    Docker 镜像 (Image) 类似于虚拟机镜像,可以将它理解为个面向 Docker 引擎的模板,包含了文件系统。
    镜像从何而来
    • 从Docker Hub下载(之前学maven的时候依赖都是从中央仓库下载,而Docker镜像可以从Docker Hub下载)
    • 通过Docker file自己创建出来
    2.Docker 容器
    Docker 容器 (Container) 类似于一个轻量级的沙箱 ,Docker 利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
    注意:
    容器和镜像一样,也是若干层的叠加,唯一区别是所有只读层的最上面一层,是一层可读可写层,可以记住这个简单的公式:容器 = 容器镜像 + 可读可写层
    3.Docker 仓库
    Docker 仓库 (Repository) 类似于代码仓库,是 Docker 集中存放镜像文件的场所。目前,最大的公开仓库是 Docker Hub ,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 Docker Pool 等,可以提供稳 定的国内访问。

    注意:
    Docker利用仓库管理镜像的设计理念与Maven非常相似。
    咱们再来理解 docker 的两句口号就更好理解了
    • Build, Ship and Run (搭建,发送,运行)
    • Build onceRun anywhere (搭建一次,运行到任何地方)

    五.Docker安装

    1.centOS联网的问题

    感觉已经八百年没用Linux了,打开虚拟机,重新创建了 一个CentOS系统,安装过程比较漫长,吗,慢慢等。

    安装之后发现没联网,搞了好一会,现在把解决办法分享一下。我用的是NAT模式。

    先切换超级用户,su,然后输入密码,要注意登录系统的密码和切换超级用户的密码可能不一样!要看自己当时是设的啥。

    然后输入ls /etc/sysconfig/network-scripts,找到ifcfg-ensXXXX文件(XXXX代表的几位数字,到底是几位这个不确定),此处XXXX的数值在每个机器上不同,记下你自己机器的数值。
    接着在终端输入gedit /etc/sysconfig/network-scripts/ifcfg-ensXXXX(XXXX替换为自己的数值)

    修改两个属性,BOOTPROTO=dhcp,ONBOOT=yes,

    然后要确保下面的这俩服务都已经启用!(分别是VMware DHCP Service和VMware NAT Service),按win+R键,接着在运行栏中输入services.msc即可查看是否正在运行。

    service network restart

    然后重启网络服务 service network restart 即可。

    最后测试一下,ping www.baidu.com

    成功!

    如果第一次已经成功联网了,下次启动系统又出现了这个问题,配置应该是没有问题的,那么可能就是你电脑上的VMware DHCP Service和VMware NAT Service服务不是自动开启的,那么再手动开启就好啦!

    2.安装docker

    yum安装最快最方便。

    我配置的系统环境版本:
    1. [abc@localhost ~]$ cat /etc/redhat-release
    2. CentOS Linux release 7.7.1908 (Core)
    3. [abc@localhost ~]$ uname -r
    4. 3.10.0-1062.12.1.el7.x86_64

    可见我的CentOS版本是7.7,Linux内核版本是3.10


    关闭防火墙

    systemctl stop firewalld.service
    关闭 selinux
    vim /etc/selinux/config

    然后将该文件里的SELINUX属性修改为disabled,按i进入编辑模式

    编辑完成之后再输入“:wq”,注意是输入冒号里面的内容,即可将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件,并且退出vim模式。

    然后输入下面的指令,如果能输出一些东西的话,就说明yum没有问题。

    yum list
    安装 docker 引擎
    yum install -y docker
    启动 docker
    systemctl start docker
    设置 docker 自启动
    即在电脑启动的时候就让docker启动起来
    systemctl enable docker

    测试docker是否安装成功

    docker run hello-world

     输出了Hello from Docker!,说明安装成功!

    可以看看到上面划红线的那条语句,拉取了hello-world镜像。

  • 相关阅读:
    PDO 与 MySQLi:PHP 数据库 API 之战
    【硬件通讯协议】SIP总线协议以及模拟(软件)SPI
    什么是jvm
    不使用脚手架构建vue项目
    Mysql索引知识点
    Hexagon_V65_Programmers_Reference_Manual (50)
    Docker快速入门到项目部署,docker自定义镜像
    SQL transaction事物以及各种锁
    【办公类-16-07-04】合并版“2023下学期 中班户外游戏(有场地和无场地版,一周一次)”(python 排班表系列)
    私有云NAS千万别用铁威马TNAS,不管是用群晖还是其他私有云都可能比这个好
  • 原文地址:https://blog.csdn.net/weixin_44593822/article/details/127332159