前言
Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。以下是对Docker的具体介绍:
- 技术起源:容器技术起源于程序员对于环境搭建与应用部署效率的追求。在没有容器技术的年代,重复的环境搭建和程序间的依赖冲突是开发和运维人员面临的主要问题。容器技术的出现,使得应用程序的运行时环境得以隔离,同时避免了操作系统层面的资源浪费,极大提高了环境搭建和应用部署的效率。
- 技术对比:与虚拟机相比,容器技术不虚拟化整个操作系统,而是仅虚拟化应用程序的运行时环境,从而更加轻量级且高效。虚拟机需要模拟完整的硬件系统来运行整个客操作系统及应用程序,而容器则直接运行在宿主机的操作系统之上,与其他容器共享内核,但彼此间保持隔离。
- 核心技术:Docker使用CS架构,即客户端-服务器模式。用户通过Docker客户端输入命令,如
docker build
、docker run
等,Docker守护进程(Daemon)负责处理这些命令并执行相应的操作。例如,构建镜像或运行容器。- 基本概念:镜像(Image)可以被视为容器的静态定义,包含应用程序及其依赖项。容器(Container)是由镜像实例化而来,它是镜像在内存中的一个运行实例。仓库(Repository)用于存储和分发Docker镜像,用户可以从公共仓库下载所需镜像,也可以将自己的镜像推送到私有或公共仓库中。
- 应用场景:Docker适用于自动化测试和持续集成、发布的场景。开发人员可以在本地编写代码并通过Docker容器进行测试,然后将应用程序推送到测试环境进行进一步验证。一旦测试完成,就可以轻松地将更新后的应用程序部署到生产环境中。
- 优势分析:Docker的优势在于其快速性、一致性和可移植性。由于容器可以在任何环境中以相同的方式运行,因此大大简化了应用程序的部署流程。此外,Docker容器的轻量级特性使得在同一硬件上可以运行更多的工作负载,从而提高资源利用率。
综上所述,Docker作为现代软件开发和运维的重要组成部分,通过提供一套简单有效的工具链,极大地简化了应用程序的封装、分发和部署过程。无论是在个人开发环境还是在企业级生产环境中,Docker都展现出了巨大的价值和潜力。
安装
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable
test
和 nightly
三个更新频道。
官方网站上有各种环境下的安装指南,这里主要介绍 Docker CE 在CentOS上的安装。
1.CentOS安装Docker
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
1.1.卸载(可选)
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2.安装docker
首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
然后输入命令:
yum install -y docker-ce
docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
1.3.启动docker
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
通过命令启动docker:
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
然后输入命令,可以查看docker版本:
docker -v
如图:
1.4.配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台