Docker入门到应用(二):Docker安装
Docker的基本组成
- 镜像
Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建多个容器。容器与镜像的关系就类似于Java面向对象类与对象的关系,镜像为类,对象为容器,通过类创建对象,通过镜像创建容器。 - 容器
Docker 利用容器(Container)独立运行的一个或一组应用。
容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。 - 仓库
仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub(https://hub.docker.com/),
存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等
总结
关于仓库/镜像/容器这几个概念的正确理解:
Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
-
image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
-
一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
-
至于仓储,就是放了一堆镜像的地方,我们可以把镜像发布到仓储中,需要的时候从仓储中拉下来就可以了。
安装步骤
CentOS上安装Docker引擎
一. 操作系统要求
根据官网最新文档要求,要安装Docker Engine,您需要安装CentOS 7或者8的维护版本。存档版本不受支持或测试,另外centos-extras必须启动存储库(此存储库默认启动),如果您已经禁用,则需要重新启动
二. 卸载旧版本
旧版本的Docker被称为docker
或docker-engine
,如果有安装这些,请卸载它们以及相关的依赖项
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum报告没有安装这些软件包,则不用管,Docker的镜像、容器、卷、网络等信息被保存在、var/lib/docker
,如果不需要保留,请删除。
三.安装
从存储库安装Docker
- 设置存储库
安装yum-utils
包(提供yum-config-manager实用程序)并设置稳定的存储库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
为阿里云存储库,若想使用管方存储库可替换地址为https://download.docker.com/linux/centos/docker-ce.repo
- 安装Docker引擎
- 安装最新版本的Docker Engine和containerd,或者进入下一步安装特定版本
sudo yum install docker-ce docker-ce-cli containerd.io
此命令会安装Docker,但不会启动Docker,它还会创建一个docker
组,但是默认情况下它不会将任何用户添加到该组中
- 要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装,如果选择执行上一步,可跳过:
列出并排序您的存储库中可用的版本。此示例按版本号从最高到最低对结果进行排序,并被截断:
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
返回的列表取决于启用了哪些存储库,并且特定于您的 CentOS 版本(.el7在本例中由后缀表示)。
通过其完全限定的包名称安装特定版本,即包名称 ( docker-ce) 加上版本字符串(第 2 列),从第一个冒号 ( 😃 开始,一直到第一个连字符,用连字符 ( -) 分隔。例如,docker-ce-18.09.1
。
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
- 启动Docker
sudo systemctl start docker
- 验证Docker是否安装
sudo docker run hello-world
此命令将下载测试镜像并在容器中运行它,当容器运行时,它会打印一条消息并退出
Hello from Docker!
This message shows that your installation appears to be working correctly.
Ubuntu上安装Docker引擎
一. 操作系统要求
要安装Docker Engine,您需要一下ubuntu版本之一的64位版本:
- Ubuntu Impish 21.10
- Ubuntu Hirsute 21.04
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
Ubuntu Linux 16.04 LTS 已于 2021 年 4 月 30 日结束其五年 LTS 窗口期,不再受支持。Docker 不再发布此发行版的软件包(包括补丁和安全版本)。建议在 Ubuntu 16.04 上运行 Docker 的用户将其系统更新到当前支持的 LTS 版本的 Ubuntu。
二.卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
如果yum报告没有安装这些软件包,则不用管,Docker的镜像、容器、卷、网络等信息被保存在、var/lib/docker
,如果不需要保留,请删除。
三.安装
使用存储库安装
设备存储库
- 更新
apt
包索引并安装包以允许apt
通过HTTPS使用存储库
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- 添加Docker阿里云 GPG 密钥:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
若需添加官方密钥,将地址https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg
替换为https://download.docker.com/linux/ubuntu/gpg
- 设置Docker存储库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
若需使用官方存储库,将https://mirrors.aliyun.com/docker-ce/linux/ubuntu
替换为https://download.docker.com/linux/ubuntu
-
安装Docker引擎
更新
apt
包索引,安装最新版本的Docker Engine和containerd,或者进入下一步安装特定版本:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装,若执行上一步,可跳过:
apt-cache madison docker-ce
docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.11~3-0~ubuntu-focal | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu focal/stable amd64 Packages
使用第二列中的版本字符串安装特定版本,例如5:20.10.12~3-0~ubuntu-focal
sudo apt-get install docker-ce=5:20.10.12~3-0~ubuntu-focal docker-ce-cli=5:20.10.12~3-0~ubuntu-focal containerd.io
- Docker安装验证
sudo docker run hello-world
此命令下载测试镜像并在容器中运行它,当容器运行时,它会打印一条消息并退出Hello from Docker!
This message shows that your installation appears to be working correctly.
Docker镜像加速
鉴于国内网络问题,拉取Docker镜像十分缓慢,可以通过配置加速器来解决,可以通过自己的阿里云账号地址申请一个专属的加速器地址。
https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
根据阿里云不同操作系统版本的文档,配置镜像加速器并重新启动docker,执行sudo docker info
命令 查看Registry Mirrors是否生效