docker安装

一、容器与 Docker 概述

  • 容器:是一种轻量级、可移植、自包含的软件打包技术,确保应用在任何环境中运行一致。

  • Docker:是一个用于开发、交付和运行应用的开放平台,实现应用与基础设施的解耦。


二、Docker 的优势

  1. 快速交付与部署:镜像标准化,启动秒级。

  2. 高效虚拟化:内核级虚拟化,无需 Hypervisor。

  3. 轻松迁移与扩展:跨平台运行(物理机、云、虚拟机等)。

  4. 简化管理:增量更新,自动化管理。



容器的标准化

在2015年,由Google,Docker、CoreOS、IBM、微软、红帽等厂商联合发起的OCI( Open Container Initiative)组织成立了,并于2016年4月推出了第一个开放容器标准。标准主要包括runtime spec标准和image format spec标准。标准的推出,有助于替成长中市场带来稳定性,让企业能放心采用容器技术,用户在打包、部署应用程序后,可以自由选择不同的容器Runtime;同时,镜像打包、建立、认证、部署、命名也都能按照统一的规范来做。

Runtime是容器真正运行的地方,Runtime需要跟操作系统kernel紧密协作,为容器提供运行环境。目前主流的三种容器Runitme有:lxc、runc、rkt。

  • Lxc是Linux上的老牌runtime。Docker最初也是使用lxc作为runtime。
  • Runc是Docker自己开发的容器runtime,符合OCI规范,也是现在Docker的默认runtime。
  • rkt是CoreOS开发的容器runtime,符合OCI规范,因而能够运行Docker的容器。

Docker的优势

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高。传统虚拟机方式运行10个不同的应用就要起10个虚拟机,而Docker只需要启动10个隔离的应用即可。

具体说来,Docker在如下几个方面具有较大的优势。

1、更快速的交付和部署

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker容器很轻很快,容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

2、更高效的虚拟化

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

3、更轻松的迁移和扩展

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

4、更简单的管理

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

三、Docker 架构与核心组件

  1. Docker 客户端 :如 docker 命令或 REST API。

  2. Docker 守护进程(Docker daemon):负责构建、运行和分发容器。

  3. Docker 镜像:只读模板,用于创建容器。

  4. Docker 容器:镜像的运行实例。

  5. Registry:镜像仓库(公有如 Docker Hub,私有如自建仓库)。


四、Docker 安装步骤(CentOS 7)

安装环境

  • 管理工具:docker-ce最新版本。
  • Runtime:使用docker默认支持的runc。
  • 操作系统:Centos7,目前在国内Centos用的较多。
  1. 关闭防火墙与 SELinux

    bash 复制代码
    systemctl stop firewalld
    systemctl disable firewalld
    # 编辑 /etc/selinux/config,设置 SELINUX=disabled
    reboot
  2. 更换 yum 源为阿里源

    bash 复制代码
    yum install -y wget
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum -y install epel-release
  3. 添加 Docker 源并安装 Docker CE

    bash 复制代码
    wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
    yum clean all
    yum install -y docker-ce
  4. 启动 Docker 并验证

    bash 复制代码
    systemctl restart docker
    systemctl enable docker
    docker --version
  5. 配置镜像加速器(如阿里云、中科大等)

    • 编辑 /etc/docker/daemon.json,添加镜像地址。
    • 重启 Docker:systemctl daemon-reload && systemctl restart docker
    shell 复制代码
    {
    "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn"
    ]
    }

五、总结要点

  • 容器提供一致性的运行环境,具备强可移植性。
  • Docker 实现应用与环境的隔离,提升开发与运维效率。
shell 复制代码
{
"registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn"
]
}

五、总结要点

  • 容器提供一致性的运行环境,具备强可移植性。
  • Docker 实现应用与环境的隔离,提升开发与运维效率。
  • 容器与虚拟机的本质区别:容器共享宿主机内核,虚拟机独立虚拟化环境
相关推荐
jianghx10241 天前
Docker部署ES,开启安全认证并且设置账号密码(已运行中)
安全·elasticsearch·docker·es账号密码设置
2503_930123931 天前
Kubernetes (四)网络插件详解:Flannel 与 Calico 的原理、数据流向与实战对比
网络·容器·kubernetes
ZHE|张恒1 天前
Docker 安装 RabbitMQ
docker·rabbitmq
远向光1 天前
k8s中的控制器
linux·容器·kubernetes
赶路人儿1 天前
dockerfile中CMD和ENTRYPOINT指令
docker
安卓开发者1 天前
Docker常用镜像使用指南:从入门到实战
运维·docker·容器
霖.242 天前
Docker常见问题
服务器·docker·云原生·容器
荣光波比2 天前
K8S(十七)—— Kubernetes集群可视化工具Kuboard部署与实践指南
云原生·容器·kubernetes
嫄码2 天前
Docker部署RocketMQ时Broker IP地址问题及解决方案
tcp/ip·docker·rocketmq
深蓝电商API2 天前
爬虫+Docker:让你的爬虫项目一键部署、可移植
爬虫·docker·容器