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=re
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)