一、Linux安装docker
1.1 前提
要求Linux内核(kernel) 版本大于等于3.8。(kernel version >=3.8)。
查看当前系统内核版本
uname -a | awk '{split($3,arr,"-");print arr[1]}'
1.2 linux 安装docker
Centos安装docker,官网地址:
Install Docker Engine on CentOS | Docker Documentation
ubuntu安装docker,官网地址:
Install Docker Engine on Ubuntu | Docker Documentation
其他系统:
Install Docker Engine | Docker Documentation
以Centos安装docker为例:
1.2.1 卸载旧版本docker(如果首次安装,可忽略此步骤)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2.2 安装 Docker Engine
更新软件包列表:使用适用于您的Linux发行版的包管理器,运行以下命令更新软件包列表:
对于Debian/Ubuntu系统:
sudo apt update
对于CentOS/RHEL系统:
sudo yum update
Docker Engine有多种安装方法,以下是三种常见的安装方法:
方法一:Docker官方仓库(推荐):
1、这种方法涉及设置Docker的官方仓库,并从中安装Docker。这样做可以方便安装、自动更新,并简化了Docker的管理。
方法二:通过RPM包手动安装
- 如果你有特定的要求或需要在无网络访问的系统(例如空隔离系统)上安装Docker,则可以手动下载RPM包并进行安装。
- 你可以从Docker网站或安全的内部来源获取RPM包。
- 请注意,管理升级将需要手动干预。
方法三:便利脚本(适用于测试和开发环境):
- Docker提供了便利脚本,可以自动化安装过程,快速方便地设置Docker用于测试和开发目的。
- 不建议在生产环境中使用这些脚本,但它们对于快速入门非常有用。
- 这些脚本可在Docker的GitHub存储库中找到,并在Docker文档中提供了详细的使用说明
我们这里采用方式一,Docker官方仓库安装。
设置软件仓库 安装yum-utils包(提供yum-config-manager实用程序)并设置软件仓库。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.2.3安装DOCKER引擎(两种方式)
1.2.3.1方式一:安装特定版本的(推荐)
1、要安装特定的版本,请首先列出仓库中可用的版本:
列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序
yum list docker-ce --showduplicates | sort -r
中间这一列数据,就是版本号
2、安装特定版本。先找到我们需要的版本号,如 3:24.0.2-1.el7
将<VERSION_STRING>替换为所需的版本,然后运行以下命令进行安装:
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
举例安装docker-ce-3:24.0.2-1.el7 的版本:
sudo yum install docker-ce-3:24.0.2 docker-ce-cli-3:24.0.2 containerd.io docker-buildx-plugin docker-compose-plugin
这个命令安装了Docker,但不会启动Docker。它还创建了一个docker用户组,但默认情况下不会将任何用户添加到该组中。
3、启动 Docker。
sudo systemctl start docker
4、通过运行 hello-world 镜像来验证 Docker Engine 的安装是否成功。
sudo docker run hello-world
这个命令会下载一个测试镜像,并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。
您现在已成功安装并启动了 Docker Engine。
1.2.3.2方式二:安装最新版本的(不推荐)
1、安装
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果提示接受GPG密钥,请验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,请接受。
该命令会安装Docker,但不会启动Docker。它还会创建一个docker用户组,但默认情况下不会向用户组中添加任何用户。
2、启动 Docker
sudo systemctl start docker
3、通过运行 hello-world 镜像来验证 Docker Engine 的安装是否成功。
sudo docker run hello-world
这个命令会下载一个测试镜像,并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。
您现在已成功安装并启动了 Docker Engine。
二、报错处理
2.1 内存空间不足,组件下载失败
内存空间不足,组件下载失败。
Total download size: 47 M
Installed size: 152 M
Is this ok [y/d/N]: Exiting on user command
Your transaction was saved, rerun it with:
yum load-transaction /tmp/yum_save_tx.2023-07-03.10-35.KF4LXD.yumtx
解决办法:
1、清理内存空间
2、继续下载:yum load-transaction /tmp/yum_save_tx.2023-07-03.10-35.KF4LXD.yumtx
2.2 docker版本冲突
服务器本身有docker,又安装了一个新的docker,导致报错。
Running transaction check Running transaction test Transaction check error: file /usr/bin/docker from install of docker-ce-cli-1:24.0.2-1.el7.x86_64 conflicts with file from package docker-common-2:1.13.1-209.git7d71120.el7.centos.x86_64 file /usr/bin/dockerd from install of docker-ce-3:24.0.2-1.el7.x86_64 conflicts with file from package docker-common-2:1.13.1-209.git7d71120.el7.centos.x86_64 Error Summary -------------
由于新版本的docker-ce-cli
和docker-ce
与旧版本的docker-common
发生冲突导致的问题。这可能是由于之前安装的Docker遗留文件或错误配置引起的。
解决办法:
1、卸载旧版本Docker:运行以下命令卸载已安装的Docker版本:
sudo yum remove docker docker-engine docker.io
2、清理残留文件:运行以下命令删除任何已安装Docker的残留文件:
sudo rm -rf /var/lib/docker
3、安装Docker依赖项:运行以下命令安装Docker所需的依赖项:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、添加Docker源:运行以下命令添加Docker的yum软件源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、清除Yum缓存:运行以下命令清除Yum缓存:
sudo yum clean all
6、安装Docker引擎:运行以下命令安装最新版本的Docker引擎:
sudo yum install docker-ce docker-ce-cli containerd.io
7、启动Docker服务:运行以下命令启动Docker服务:
sudo systemctl start docker