Jason's Blog

November 27, 2024

Docker : Tag matters and so on

1.6 min to read

Docker

问题描述

今早进行docker pull的时候,屡次出错。经检查,梯子能正常访问,但docker pull不是超时就是被拒绝访问,捣鼓了半天,最终发现是docker标签的问题。 image

问题根因

docker pull会默认带版本是latest

docker pull /username/reponame

image

解决方案

我们发现docker如果有自带标签,用latest是不管用的。

image

将命令更改为

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