yum remove docker-client docker-client-latest docker-latest docker-latest-logrotate docker-logrotate &&
yum -y remove docker \
docker-common \
docker-selinux \
docker-engine \
docker-engine-selinux \
container-selinux docker-ce &&
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 &&
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo &&
yum makecache fast &&
yum list docker-ce --showduplicates | sort -r &&
yum install docker-ce-23.0.6-1.el7 -y &&
systemctl start docker &&
systemctl enable docker &&
mkdir -p /home/docker/lib &&
cp -R /var/lib/docker/* /home/docker/lib/ &&
vi /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd后面加入 (注意是在-H之前): --graph=/home/docker/lib
systemctl daemon-reload &&
service docker restart &&
yum install -y bash-completion &&
source /usr/share/bash-completion/completions/docker &&
source /usr/share/bash-completion/bash_completion &&
vi /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
sysctl -p &&
service docker restart &&
docker info
注意另一种修改 docker 存储路径的方式是:
新建 /etc/systemd/system/docker.service.d 目录,识别目录下的 .conf 文件为 docker 的配置文件,替换默认配置文件,即:
vi /etc/systemd/system/docker.service.d/docker.conf
Service
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/home1/docker/lib
配置 docker 镜像加速与限制容器日志大小(根本上解决容器日志过多的问题:只对新建容器有效)
service docker stop &&
只配置加速,没有 NVIDIA-docker 时
echo '{
"registry-mirrors": [
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}' > daemon.json
systemctl daemon-reload &&
systemctl restart docker
安装 NVIDIA-docker 后,注意修改 daemon.json 文件(前半部分自动生成),如下:
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"registry-mirrors": ["https://ui528bum.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"100m", "max-file":"1"}
}