文章目录
一、安装
(方案1)国内 daocloud 一键安装命令【此方法已废弃】
-
安装
使用国内 daocloud 一键安装命令curl -sSL https://get.daocloud.io/docker | sh
- 启动
sudo systemctl start docker.service
ps:由于是国内的一键安装脚本,所以国内镜像源也自动配置好了,拉取镜像的速度杠杠滴
(方案2)yum安装【此方法有时不行了】
-
安装命令
sudo yum install docker-ce
如果报如下错误 ↓(不报错的话说明安装成功了,不用往后走了)
[root@node01 ~]# yum -y install docker-ce 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.bfsu.edu.cn * extras: mirrors.163.com * updates: mirrors.cqu.edu.cn 没有可用软件包 docker-ce。 错误:无须任何处理
那么说明yum源中找不到docker,执行后续操作
-
docker源添加到yum
sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
-
刷新缓存
sudo yum makecache fast
-
再次执行安装命令
sudo yum install docker-ce
如果又报这个错了↓(不报错的话说明安装成功了,不用往后走了)
Downloading packages: (1/10): container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm | 40 kB 00:00:00 docker-buildx-plugin-0.14.1-1. FAILED https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm: [Errno 14] curl#35 - "TCP connection reset by peer" ] 0.0 B/s | 0 B --:--:-- ETA 正在尝试其它镜像。 warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-26.1.4-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY ] 488 kB/s | 55 MB 00:02:04 ETA docker-ce-26.1.4-1.el7.x86_64.rpm 的公钥尚未安装
那就继续执行后续操作
-
安装一下对应系统版本的docker公钥(下面是centos7的,其他版本需要去网上找找)
rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
-
再次执行安装命令
sudo yum install docker-ce
(方案3)yum安装【用这个,前面两个方法由于历史原因多半是不行了】
-
安装命令
sudo yum install docker-ce
如果报如下错误 ↓
[root@node01 ~]# yum -y install docker-ce 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.bfsu.edu.cn * extras: mirrors.163.com * updates: mirrors.cqu.edu.cn 没有可用软件包 docker-ce。 错误:无须任何处理
那么说明yum源中找不到docker,执行后续操作
-
添加docker官方的源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果上面代码执行报错找不到 yum-config-manager,就执行
sudo yum install dnf-plugins-core
-
修改成国内源
# sudo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo sudo sed -i 's+https://download.docker.com+https://mirrors.ustc.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
-
将$releasever改成8,对应centos8的源
sudo sed -i 's+$releasever+8+' /etc/yum.repos.d/docker-ce.repo
-
安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
二、配置
1.配置docker自启动
-
启动docker
sudo systemctl start docker
-
docker配置自启动
systemctl enable docker.service
2.修改docker数据目录 + 换源
-
停止 Docker 服务
sudo systemctl stop docker
-
备份当前的 Docker 数据存储目录 /var/lib/docker
sudo mv /var/lib/docker /var/lib/docker.bak
-
创建新的 Docker 数据存储目录,例如 /home/data/docker
sudo mkdir -p /home/data/docker
-
修改 Docker 配置文件
sudo vim /etc/docker/daemon.json
将以下内容复制粘贴到文件中,并将其中的/home/data/docker 替换为实际的数据存储路径
注意千万不要有tab或者空格符号,也不要有注释,否则启动 docker 会报错
{ "data-root": "/home/data/docker", "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] # 这行别配了,国内镜像不能用了 }
ps:
- data-root: 数据目录
- registry-mirrors: 国内镜像,
国内镜像现在不能用了,需要自己打包镜像上传使用
,参考这篇文章的 二-6 和 二-7 https://blog.csdn.net/weixin_43721000/article/details/123521722
-
保存关闭,启动docker
sudo systemctl start docker
-
测试是否更改成功
-
测试数据目录是否修改成功
docker info | grep 'Docker Root Dir'
-
测试国内镜像换源是否修改成功
使用docker命令下载hello-world镜像,如果速度飞快,说明换源成功sudo docker pull hello-world
-
三、常见问题
* docker 报错 library initialization failed - unable to allocate file descriptor table - out of memory
- 查看服务位置
systemctl status docker
- 修改服务
vi /usr/lib/systemd/system/docker.service
- 在ExecStart命令后加上创建容器的默认ulimit配置,如下,设置容器启动时的ulimit为65535:65535
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit nofile=65535:65535
- 重启
systemctl daemon-reload
systemctl restart docker