一、认识 Docker
1. 概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker 技术的三大核心概念,分别是:镜像 Image、容器 Container、仓库 Repository。 镜像是一个可执行包,其包含运行应用程序所需的代码、运行时、库、环境变量和配置文件,容器是镜像的运行时实例。
2. 虚拟化
-
虚拟机:虚拟化硬件 虚拟机 Virtual Machine 指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。每个虚拟机都有独立的 CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。 虚拟机技术的代表,是 VMWare 和 OpenStack
-
容器:将操作系统层虚拟化,是一个标准的软件单元
- 随处运行: 容器可以将代码与配置文件和相关依赖库进行打包,从而确保在任何环境下的运行都是一致的
- 高资源利用率: 容器提供进程级的隔离,因此可以更加精细地设置 CPU 和内存的使用率,进而更好地利用服务器的计算资源
- 快速扩展: 每个容器都可作为单独的进程予以运行,并且可以共享底层操作系统的系统资源,这样一来可以加快容器的启动和停止效率
- 区别与联系 与虚拟机相比,容器更轻量且速度更快,因为它利用了 Linux 底层操作系统在隔离的环境中运行。虚拟机的 Hypervisor 创建了一个非常牢固的边界,以防止应用程序突破它,而容器的边界不那么强大。 物理机部署不能充分利用资源,造成资源浪费。虚拟机方式部署,虚拟机本身会占用大量资源,导致资源浪费,另外虚拟机性能也很差。而容器化部署比较灵活,且轻量级,性能较好。 虚拟机属于虚拟化技术,而 Docker 这样的容器技术,属于轻量级的虚拟化
3. Docker 轻量级的原因?
相信你也会有这样的疑惑:为什么 Docker 启动快?如何做到和宿主机共享内核? 当我们请求 Docker 运行容器时,Docker 会在计算机上设置一个资源隔离的环境。然后将打包的应用程序和关联的文件复制到 Namespace 内的文件系统中,此时环境的配置就完成了。之后 Docker 会执行我们预先指定的命令,运行应用程序。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。
二、安装 Docker
1、在线安装
可以选择国内的一些源地址:
- 阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 清华大学源
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community 安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2、离线安装
- 阿里云镜像:
- http://mirrors.aliyun.com/docker-ce/linux/centos/7.5/x86_64/stable/Packages/?spm=a2c6h.25603864.0.0.731f3c191yFII5
- Docker 官方镜像:
- https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
- 在下载页面分别下载rpm文件:
- docker-ce-18.06.0.ce-3.el7.x86_64.rpm
- docker-ce-cli-18.09.0-3.el7.x86_64.rpm
- containerd.io-1.2.6-3.3.el7.x86_64.rpm
- docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
- docker-ce-rootless-extras-20.10.0-3.el7.x86_64.rpm
- 文件下载完成后上传至目标服务器,使用如下命令进行安装:
rpm -Uvh --force --nodeps *.rpm
- 安装完成后验证:
systemctl start docker
s ystemctl status docker
标签:容器,入门,虚拟机,ce,docker,rpm,Docker
From: https://blog.51cto.com/u_15548243/7189648