如何更新docker中镜像的版本?

如何更新docker中镜像的版本?

# 进入 docker-compose.yml 文件所在的文件夹下
cd /root/data/docker_data/npm

# 停止容器
docker-compose down 

# 数据备份 # 万事先备份,以防万一
cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive  

# 拉取新版本镜像
docker-compose pull

# 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker-compose up -d

# prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
docker image prune  

出现以下错误:

Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

原因: docker默认镜像源为国外镜像源,下载速度过慢导致连接失败

解决办法:更换国内镜像源

1、etc/docker/daemon.json 文件并打开,找到daemon.json文件

2、将以下代码复制进去并保存关闭

{
	"registry-mirrors": ["https://docker.shootchat.top","https://dockerhub.icu"]
}

3、继续报错

ubuntu@VM-16-6-ubuntu:/opt/stacks/web$ sudo docker-compose pull
[+] Pulling 1/1
 ✘ Nginx-Proxy-Manager Error                                                                                                                                                     30.0s
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
ubuntu@VM-16-6-ubuntu:/opt/stacks/web$ sudo docker-compose pull
[+] Pulling 1/1
 ✘ Nginx-Proxy-Manager Error                                                                                                                                                     30.0s
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
ubuntu@VM-16-6-ubuntu:/opt/stacks/web$

原因是:没有重启docker

# 重启docker
systemctl restart docker

# 加上sudo
sudo systemctl restart docker

4、重启后拉取镜像就成功了~

posted @ 2024-10-17 17:59  未来的羁绊  阅读(192)  评论(0编辑  收藏  举报