为什么选择 Docker
传统虚拟机的缺点:资源占用十分多、冗余步骤多、启动很慢。
Docker 的优势:使用容器化技术,项目代码带上环境配置打包成镜像,上传到镜像仓库,别人下载镜像即可运行,不再需要复杂的环境配置。
「注意:容器化技术不是模拟一个完整的操作系统」。所以 Docker 之所以能火,是因为它比普通虚拟机轻巧!
Docker 和虚拟机技术的不同:
-
传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;
-
Docker 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了;
-
每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
Docker 中的几个术语
Docker的相关术语:
-
镜像 (image)
-
容器 (container)
-
仓库 (repository)
镜像可以认为是一些软件和配置环境的整体打包。
容器可以认为是一个精简的 Linux 系统,它是通过镜像运行起来的实例,镜像运行起来就是容器。从这个角度来讲,镜像就类似于 Java 中的 Class 类型,由它可以创建多个实例。
镜像是存在硬盘上的东西,镜像运行起来,就形成一个容器,容器才是真正跑起来的程序。只不过在 Docker 中,我们可以进入容器,做一些操作,然后再把容器中的改动提交形成一个新的镜像。
仓库类似于 Github,我们写好的代码会提交到 Github 上面进行保存和管理,方便在其他地方也能下载代码。镜像仓库也是类似的,制作好的镜像,就把它放到镜像仓库,方便其他人直接用镜像部署。
Docker 安装与卸载
环境准备,Linux 要求内核 3.0 以上,我这里使用的阿里云服务器(CentOS 8),查看相关信息的命令如下:
➜ ~ uname -r
4.18.0-193.14.2.el8_2.x86_64 # 要求 3.0 以上
➜ ~ cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
Docker 的安装参照其官方文档按照步骤来就完全可以(Docker 的官方文档相当的详细),网址:https://docs.docker.com/engine/install/
这里为了方便为大家把安装步骤以及相应的注释写出来:
1、卸载旧版本,如果服务器上没安装过 docker 就不用进行此步骤。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、需要的安装包:
yum install -y yum-utils
3、设置镜像的仓库,官方文档中默认是国外的仓库,不推荐使用,这里推荐使用国内的,如下:
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 软件包索引:
yum makecache fast # 注意:如果是 centos 8 版本则直接使用 yum makecache 即可
4、安装 docker ,docker-ce 代表为社区版,而 ee 代表是企业版,此处安装社区版。
yum install docker-ce docker-ce-cli containerd.io
注意:版本为 centos 8 时执行上述命令时会报错,说的是 containerd.io >= 1.2.2-3,解决方法:
(1)降低 docker 的版本;(2)如果不想降低 docker 版本,那么就更新 co