目录
一、前提
二、安装 Docker
1. 通过仓库进行安装(在线方式)
1.1 设置存储库
1.2 查看可安装版本
1.3 安装 Docker
1.4 启动 Docker
1.5 验证是否成功
2. 通过 RMP 包安装(离线方式)
2.1 下载 rpm 包
2.2 安装 Docker
2.3 启动 Docker
2.4 验证是否成功
三、Docker 常用命令
1. 查看版本 docker version | docker --version
2. 管理镜像
2.1 搜索镜像
2.2 拉取镜像
2.3 管理镜像
常用操作命令
3. 管理容器
常用操作命令
四、安装报错处理
报错信息:Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download
解决方式:更新 YUM 源
本文安装环境:CentOS Linux release 8.2.2004 (Core)
服务器为购买的云服务器,各项参数均为默认配置,未安装任何依赖。
一、前提
服务器未安装过旧版本 Docker 可直接跳到「安装 Docker」
服务器未安装过旧版本 Docker 可直接跳到「安装 Docker」
一些旧版本的 Docker 我们称其为 docker 或 docker-engine。未避免此次安装受历史安装版本影响,需要先删除历史版本及各类依赖后再进行安装。
卸载命令:
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
执行情况:
本次所使用的云服务器没有 Docker 相关信息
[root@shangliang ~]# sudo yum remove docker > docker-client > docker-client-latest > docker-common > docker-latest > docker-latest-logrotate > docker-logrotate > docker-engine Failed to set locale, defaulting to C.UTF-8 No match for argument: docker No match for argument: docker-client No match for argument: docker-client-latest No match for argument: docker-common No match for argument: docker-latest No match for argument: docker-latest-logrotate No match for argument: docker-logrotate No match for argument: docker-engine No packages marked for removal. Dependencies resolved. Nothing to do. Complete!
二、安装 Docker
1. 通过仓库进行安装(在线方式)
首次安装 Docker Engine 之前,需要先设置 Docker 存储库,后续可以通过存储库来更新 Docker。能访问互联网的建议通过此种方式安装,方便后续升级。
1.1 设置存储库
首次安装 Docker Engine 之前,需要先设置 Docker 存储库,后续可以通过存储库来更新 Docker。能访问互联网的建议通过此种方式安装,方便后续升级。
1.1 设置存储库
安装 yum-utils (安装报错,查看处理方式)
sudo yum install -y yum-utils
设置存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.2 查看可安装版本
yum list docker-ce --showduplicates | sort -r
查询的版本数据为当前所使用的仓库内,当前系统可用的 Docker 版本信息
[root@shangliang ~]# yum list docker-ce --showduplicates | sort -r Failed to set locale, defaulting to C.UTF-8 docker-ce.x86_64 3:20.10.9-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.8-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.7-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.5-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.4-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.3-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.2-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.17-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.16-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.15-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.14-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.13-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.12-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.11-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.10-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.1-3.el8 docker-ce-stable docker-ce.x86_64 3:20.10.0-3.el8 docker-ce-stable docker-ce.x86_64 3:19.03.15-3.el8 docker-ce-stable docker-ce.x86_64 3:19.03.14-3.el8 docker-ce-stable docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable Docker CE Stable - x86_64 45 kB/s | 26 kB 00:00 Available Packages
1.3 安装 Docker
默认安装的为最新版本
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
如果需要安装特定版本,增加对应版本号即可
sudo yum install docker-ce-docker-ce-cli- containerd.io docker-compose-plugin
执行完安装命令等待安装即可,中间出现 Is this ok [y/N]: 直接 y
#安装完成 Installed: checkpolicy-2.9-1.el8.x86_64 container-selinux-2:2.167.0-1.module_el8.5.0+911+f19012f9.noarch containerd.io-1.6.6-3.1.el8.x86_64 docker-ce-3:20.10.17-3.el8.x86_64 docker-ce-cli-1:20.10.17-3.el8.x86_64 docker-ce-rootless-extras-20.10.17-3.el8.x86_64 docker-compose-plugin-2.6.0-3.el8.x86_64 docker-scan-plugin-0.17.0-3.el8.x86_64 fuse-common-3.2.1-12.el8.x86_64 fuse-overlayfs-1.7.1-1.module_el8.5.0+890+6b136101.x86_64 fuse3-3.2.1-12.el8.x86_64 fuse3-libs-3.2.1-12.el8.x86_64 libcgroup-0.41-19.el8.x86_64 libslirp-4.4.0-1.module_el8.5.0+890+6b136101.x86_64 policycoreutils-python-utils-2.9-16.el8.noarch python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64 python3-libsemanage-2.9-6.el8.x86_64 python3-policycoreutils-2.9-16.el8.noarch python3-setools-4.3.0-2.el8.x86_64 slirp4netns-1.1.8-1.module_el8.5.0+890+6b136101.x86_64 Complete!
1.4 启动 Docker
# 启动 Docker
[root@shangliang ~]# sudo systemctl start docker
1.5 验证是否成功
输出 Hello 相关信息,表示我们 Docker 已经安装成功
Hello from Docker!
This message shows that your installation appears to be working correctly.
[root@shangliang ~]# sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
2. 通过 RMP 包安装(离线方式)
无法访问互联网的可通过此种方式离线安装
2.1 下载 rpm 包
官方下载地址:Index of linux/
包含各版本 Linux 系统的 Docker 安装包,根据系统版本自行选择即可。
CentOS 8.2 x86_64可直接下载 docker-ce-cli-20.10.17-3.el8.x86_64.rpm (日期:2022-06-07 00:47:30)
2.2 安装 Docker
# 路径替换为自己的 rpm 包路径
sudo yum install 包存放路径/docker-ce-cli-20.10.17-3.el8.x86_64.rpm
2.3 启动 Docker
# 启动 Docker
[root@shangliang ~]# sudo systemctl start docker
2.4 验证是否成功
输出 Hello 相关信息,表示我们 Docker 已经安装成功
Hello from Docker!
This message shows that your installation appears to be working correctly.
[root@shangliang ~]# sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
三、Docker 常用命令
1. 查看版本 docker version | docker --version
# 查看 docker 版本
[root@shangliang ~]# docker --version
Docker version 20.10.17, build 100c701
# 查看 Docker 版本(详细)
[root@shangliang ~]# docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:03:11 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:01:29 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
2. 管理镜像
2.1 搜索镜像
# 查看 docker 版本 [root@shangliang ~]# docker --version Docker version 20.10.17, build 100c701 # 查看 Docker 版本(详细) [root@shangliang ~]# docker version Client: Docker Engine - Community Version: 20.10.17 API version: 1.41 Go version: go1.17.11 Git commit: 100c701 Built: Mon Jun 6 23:03:11 2022 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.17 API version: 1.41 (minimum version 1.12) Go version: go1.17.11 Git commit: a89b842 Built: Mon Jun 6 23:01:29 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.6 GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 runc: Version: 1.1.2 GitCommit: v1.1.2-0-ga916309 docker-init: Version: 0.19.0 GitCommit: de40ad0
2. 管理镜像
2.1 搜索镜像
docker search <名称>
2.2 拉取镜像
docker pull <镜像名称>,如 docker pull redis , 默认拉取最新版本 Redis
docker pull <镜像名称>:<版本>,增加版本编号可拉取制定版本
2.3 管理镜像
docker image <操作命令>
常用操作命令
build:通过 Dockerfile 构建镜像
ls:展示镜像列表
pull:从远程仓库拉取一个镜像
push:向远程仓库推送一个镜像
rm:删除一个或多个镜像
3. 管理容器
docker container <操作命令>
常用操作命令
ls:展示容器列表,默认展示运行中的。-a 展示全部 docker container ls -a
run:启动一个新的容器 (容器名称: --name 容器名称;绑定端口: -p 宿主机IP:容器内IP ,后台启动:-d)
restart:重启一个或多个容器, docker container restart 容器id
stop:停止一个或多个容器,docker container stop 容器id
kill:强制停止一个或多个容器,docker container kill 容器id
start:启动一个或多个已停止的容器,docker container start 容器id
rm:删除一个或多个容器,docker container rm 容器id
inspect:展示一个或多个容器的详细信息,docker container inspect 容器id
四、安装报错处理
报错信息:Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download
[root@shangliang ~]# sudo yum install -y yum-utils
Extra Packages for Enterprise Linux 8 - x86_64 115 B/s | 196 B 00:01
Errors during downloading metadata for repository 'epel':
Status code: 404 for http://archives.fedoraproject.org/pub/archive/epel/8/Everything/x86_64/repodata/repomd.xml (IP: 38.145.60.24)
Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
解决方式:更新 YUM 源
#备份 repo 文件
mv /etc/yum.repos.d /etc/yum.repos.d.bak
#创建新的源文件目录
mkdir -p /etc/yum.repos.d
#下载新的 YUM 源
curl https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /etc/yum.repos.d/Centos-vault-8.5.2111.repo
curl https://mirrors.aliyun.com/repo/epel-archive-8.repo > /etc/yum.repos.d/epel-archive-8.repo
[root@shangliang ~]# sudo yum install -y yum-utils Extra Packages for Enterprise Linux 8 - x86_64 115 B/s | 196 B 00:01 Errors during downloading metadata for repository 'epel': Status code: 404 for http://archives.fedoraproject.org/pub/archive/epel/8/Everything/x86_64/repodata/repomd.xml (IP: 38.145.60.24) Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried



