docker pull 遇到的问题

1、利用docker pull拉取镜像时,提示Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/images/create?fromImage=registry.cn-shanghai.aliyuncs.com%2Ftcc-public%2Fpython&tag=3: dial unix /var/run/docker.sock: connect: permission denied

解决方案:需要有sudo权限的用户进行pull

2、提示Error response from daemon: Get https://registry.cn-shanghai.aliyuncs.com/v2/: proxyconnect tcp: tls: oversized record received with length 20527

解决方案:来自[SOLVED] tls: oversized record received while trying docker pull · Issue #37102 · moby/moby · GitHub

首先此类问题出在不能联网的服务器上,服务器需要用代理连接外网。具体解决方案,首先查看docker的HTTP和HTTPS Proxy,具体查看方式sudo docker info

根据github解决方案提示,需要设置HTTPS Proxy为http::**************。

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

sudo vim /etc/systemd/system/docker.service.d/https-proxy.conf

将其中与HTTPS Proxy为https相关的更改为HTTPS Proxy为http,(注意,少了s)

sudo systemctl daemon-reload

sudo systemctl restart docker

即可解决

3、以下为了防止忘记,记录一些命令:

a. 下拉镜像,sudo docker pull ****************

b. 构建镜像,sudo docker built -t ************* .

c. 上传镜像,sudo docker push ***********

d. 启动容器,sudo docker run -it *********** /bin/bash

e. 查看镜像列表,sudo docker images

f.  删除镜像,sudo docker rmi image-id

g. 删除容器,sudo docker rmi con-id

h. 查看正在运行的镜像,sudo docker ps

4、删除docker镜像时,提示 image is referenced in multiple repositories

问题在于同一个镜像ID对应不同的tag,利用sudo docker rmi repository:tag的方式删除即可

5、关于docker镜像重命名,有时候构建镜像时,忘记修改tag,导致之前构建的镜像tag变为<None>,要将其重命名,执行

sudo docker tag *** repository:newtag 即可,其中***表示镜像ID,newtag即想要重新命名的tag,命名后可能会出现上述问题4所示问题,继续操作即可。

6、关于打包镜像

sudo docker save -o test_docker.tar dockerName

会在当前目录下生成test_docker.tar打包文件。

重新加载docker镜像时,采用

sudo docker load -i docker_test.tar

若因打包文件太大无法上传等后续操作,可采用分块打包压缩,将

tar -zcvf test_docker.tar.gz test_docker.tar | split -b 4000M -d -a 1 - test_docker.tar.gz.

分为100M大小的块,后续可采用

cat test_docker.tar.gz.* | tar -zxv

将分块还原,并重新load即可。

7、关于在Dockerfile中调用pip install出现connection time out的问题,同上述问题2,具体解决方案为将Dockerfile中的

RUN pip install <p_name>

替换为:

RUN pip install --proxy=http://<host_0.0.0.0>:<port_0000> <p_name>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`docker pull` 命令用于从 Docker Hub 或者其他注册中心下载 Docker 镜像。如果你在使用 Docker遇到网络限制或访问速度较慢,特别是当你试图下载较大的镜像时,可能会遇到下载困难。这时,你可以利用 Docker 的代理设置来加速镜像的下载。 Docker 提供了 `--proxy` 和 `--no-proxy` 选项来配置代理。`--proxy` 用于指定 HTTP/HTTPS 代理服务器地址,例如: ``` docker pull --proxy=http://your-proxy-server:port repository/image:tag ``` 这里的 `your-proxy-server` 是代理服务器的地址,`port` 是对应的端口号。如果代理需要认证,可以使用 `--proxy-username` 和 `--proxy-password` 选项提供用户名和密码。 `--no-proxy` 用于指定不走代理的主机名或 IP,通常会用到本地机器的地址,如 `localhost`, `127.0.0.1` 等: ``` docker pull --no-proxy=localhost repository/image:tag ``` 这样,Docker 就只会针对不在 `--no-proxy` 列表中的请求使用代理。 如果你需要设置全局代理,可以编辑 `~/.docker/config.json` 文件,添加类似这样的内容: ```json { "proxies": { "default": { "http": "http://your-proxy-server:port", "https": "http://your-proxy-server:port" } } } ``` 然后重启 Docker 服务(`sudo service docker restart`),新的代理设置就会生效。 相关问题: 1. Docker代理的作用是什么? 2. 如何在Windows上配置Docker代理? 3. 如何在Linux系统中编辑`~/.docker/config.json`文件?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值