Docker
问题描述
今早进行docker pull的时候,屡次出错。经检查,梯子能正常访问,但docker pull不是超时就是被拒绝访问,捣鼓了半天,最终发现是docker标签的问题。
问题根因
docker pull会默认带版本是latest
docker pull /username/reponame
解决方案
我们发现docker如果有自带标签,用latest是不管用的。
将命令更改为
docker pull /username/reponame:tagname
docker设置镜像
临时设置
# 注意,mirrouname不要带https
docker pull <mirrorname>/username/reponame
长期设置
# 有直接修改,没有直接创建
vim /etc/docker/daemon.json
将以下内容写入daemon.json
{
"registry-mirrors": [
"https://hub.atomgit.com",
"https://dockerproxy.net"
]
}
随后更新docker设置
systemctl daemon-reload
systemctl restart docker
# 查看docker是否正常运行,如果没有正常运行,返回查看daemon.json有无格式错误
systemctl status docker
# 查看docker配置镜像是否成功,若设置成功,在信息的最后几行会显示mirror-list
docker info
docker 下载 -for Cent OS
卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# 安装依赖包
sudo yum install -y yum-utils
# 利用镜像源下载docker
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动
sudo systemctl enable docker
sudo systemctl start docker
设置用户组
由于docker未设置的情况下只有root才能使用,所以一般会设置docker用户组,使得普通用户也进行使用。
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker