目录
- 简介
- 部署方式对比
- 物理机部署
- 虚拟机部署
- 容器部署
- Docker 架构
- Docker 安装
- 安装准备
- 安装步骤
- 结尾
简介
Docker是一种容器技术,可以将应用程序和基础设施层隔离,并且可以将基础设施当做程序一样进行管理,轻松部署应用程序,使用Linux容器来部署应用程序称为集装箱化。
集装箱化的优点:
- 灵活:即使是复杂的应用程序也可封装。
- 轻量级:容器利用并共享主机内核。
- 便携式:可以在本地构建,部署到云上并在任何地方运行。
- 可扩展性:可以增加和自动分发容器副本。
- 可堆叠:可以垂直堆叠服务并及时堆叠服务。
部署方式对比
1. 物理机部署
- 成本高、部署慢、浪费资源、硬件限制、不利于迁移扩展
2. 虚拟机部署
- 资源占用多:虚拟机会独占一部分内存和硬盘空间,可能虚拟机占用的资源远大于应用程序需要的资源。
- 冗余步骤多:虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。
- 启动慢:分级别。启动操作系统需要多久,启动虚拟机就需要多久。
- 容器部署
- 启动快:秒级别。容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
- 资源占用少:容器只占用需要的资源,不占用那些没有用到的资源,多个容器可以共享资源,虚拟机都是独享资源。
- 体积小:容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包。容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。
Docker 架构
- Docker daemon : Docker 守护进程,负责后台进程、镜像、容器以及数据卷管理,还可以与其他守护进程通信以管理docker服务。
- Client : 用于与Docker daemon交互。
- Registry : 镜像仓库,可以理解为类似maven仓库的存在,用来存放各种docker image。
- Images : Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变,是一个只读模板。
- Container : 容器的实质是进程,运行于属于自己的独立的命名空间。镜像(image)和容器(container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
Docker 安装
英语较好的同学建议直接查看docker官方文档进行安装
安装准备
1. 查看系统内核
Centos 版本的Docker是对系统内核有要求,官方文档要求系统内核至少3.8以上,且Docker只能运行在64位的系统中
uname -r
2. 可选,yum更新
yum -y update
安装步骤
安装的所有操作均在root权限下执行,如果没有root权限,可使用 sudo
命令执行
例:sudo yum install
1. 卸载旧版本Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装相关依赖
yum -y install yum-utils device-mapper-persistent-data lvm2
3. 添加软件源信息
官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 安装Docker引擎
安装最新版
yum -y install docker-ce docker-ce-cli containerd.io
指定版本安装
查找历史版本
yum list docker-ce --showduplicates | sort -r
选择需要的版本进行安装
yum -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
5. 启动Docker
systemctl start docker
查看Docker的安装信息
docker version
6. 测试Docker
获取并运行我们的第一个镜像 hello-world
,测试Docker是否正确安装
拉取镜像
docker pull hello-world
查看镜像
docker image ls
容器运行
docker run hello-world
运行镜像后输出以下内容,没有错误信息,证明Docker正常运行
7. 设置镜像仓库
有时候使用docker pull
获取镜像时会出现下载速度慢,甚至无法下载的情况,这是由于官方仓库在海外,你懂的,所以我们需要将Docker的镜像源改为国内源。
国内的镜像源有
- docker官方中国区:
https://registry.docker-cn.com
- 网易:
http://hub-mirror.c.163.com
- ustc:
http://docker.mirrors.ustc.edu.cn
- 阿里云:
http://<你的ID>.mirror.aliyuncs.com
在以上源中挑一个或者全部添加,阿里云镜像加速地址需要到阿里云控制台申请
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://<你的ID>.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://docker.mirrors.ustc.edu.cn"
]
}
EOF
重新加载daemon.json
文件并重启Docker
systemctl daemon-reload
systemctl restart docker
8. 设置开机启动
systemctl enable docker
结尾
参考
标题:Linux 系列之 Docker 简单介绍与安装
作者:hyboll
地址:https://blog.ovoll.cn/articles/2020/07/03/1593759657096.html