Docker常见错误及解决方法
1.Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
主要是因为镜像问题,重新修改国内镜像就好了。
1.docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
2.Failed to connect to bus: Host is down
我在docker的虚拟机CentOS中安装了initscripts,修改了/etc/sysconfig/network-scripts/ifcfg-eth3文件,准备执行:service network restart 重启网络,结果报错了。
1.systemctl failed to connect to bus - docker ubuntu:16.04 container
2.how to solve Docker issue Failed to connect to bus: No such file or directory
3.systemctl not working in container - ‘Failed to connect to bus: No such file or directory’
4.Systemctl status is not working in my Docker container
3. Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
这里主要是因为给Docker绑定端口的时候,出现了端口占用问题。在windows系统下可以打开命令行输入:netstat -ano , 查询端口占用情况。
1 | #查找所有运行的端口 |
4.ERROR: Error response from daemon: open \.\pipe\docker_engine_linux: The system cannot find the file specified.errors pretty printing info
在windows10上调用:docker info 的时候,出现了这个错误。
应该是docker没有启动。可以打开Docker Desktop,然后等一会,试试能不能行。
5.WARNING: bridge-nf-call-iptables is disabled
在CentOS上安装Docker,安装没什么问题,结果调用docker info时出现了警告:WARNING: bridge-nf-call-iptables is disabled .本着不完美就不行的感觉,还是想办法解决这个问题吧。
解决方法,关闭SELinux就可以了,然后重启电脑。
1 | ## 查看selinux状态 |
1.Getting WARNING: bridge-nf-call-iptables is disabled with overlay storage driver
2.centos 7.0 查看selinux状态|关闭|开启
6.Job for docker.service failed because start of the service was attempted too often
CentOS 7.0 安装了docker,编写了/etc/docker/daemon.json文件,然后重启docker,出现了错误。解决方法:
1 | mv /etc/docker/daemon.json /etc/docker/daemon.conf |
这里有一点要说明的是,同样是CentOS系统,CentOS8就应该写daemon.json而不是daemon.conf,否则会报错
1.docker安装中遇到的大坑
2.Job for docker.service failed because start of the service was attempted too often. See “systemctl status docker.service” and “journalctl -xe” for details. To force a start use “systemctl reset-failed
3.docker在centos7启动出现错误
4.Job for docker.service failed because the control process exited with error code
7.WARNING: No swap limit support
在Deepin系统中,执行 docker info 命令,出现了:WARNING: No swap limit support 警告。
1 | ## 编辑grub文件 |
8.WSL 2 installation is incomplete
2020年10月12日,今天刚开电脑,就提示说Docker需要升级,升级就升级吧。升级的过程其实非常的简单,就是点击Update,下一步下一步,最后也升级成功了。
但是实际上,重启电脑之后,总是会弹出:WSL 2 installation is incomplete的警告。
我按照提示打开了网站更新 WSL 2 Linux 内核,按照上面的操作,下载然后执行下面的安装步骤。安装完成之后,再就没有然后了。
- 运行上一步中下载的更新包。
- 系统将提示你提供提升的权限,选择“是”以批准此安装。
- 安装完成后,便可以开始使用 WSL2 了!
1.WSL2来了!但是能正常使用并不简单 (这是如何安装WSL2,我好像也没用到)
9.Mac中无法ping通容器
在Mac上安装了Docker,使用: docker run 启动了容器,但是在Mac宿主机进行ping操作的时候,却发现ping不同容器。但是在windows上进行docker容器的创建,却可以实现宿主机windows能ping通docker的centos容器。
1.踩坑记:解决 Mac 上 Docker 无法直接 ping 通的问题 解决问题的方案,是 github 上的 docker-for-mac 项目,主要方法是使用 OpenVpn 来访问 docker。
2.Mac宿主主机无法ping通docker容器ip
3.MAC DOCKER无法ping通容器解决方案 ocker-machine创建默认linux虚拟机
10.error during connect: Get “http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.24/info”: open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
这是我在Windows10上执行 docker info 命令的时候,爆出的错误。
【解决方法】
使用SwitchDaemon解决了该问题,我想起来了,好像有一次我切换过Docker的模式,但是不知道如何做的了。
1 | cd "C:\Program Files\Docker\Docker" |
11.no matching manifest for windows/amd64 10.0.19042 in the manifest list entries
在执行 docker pull 最新的centos镜像的时候,爆出了这个错误,无法拉取镜像:
【解决方法】
Right click Docker icon in the Windows System Tray
Go to Settings
Daemon
Advanced
Set the "experimental": true
Restart Docker
12.WARNING: The requested image’s platform (linux/amd64) does not match the detected host platform (windows/amd64) and no specific platform was requested
这是一个警告,不影响docker运行,我就暂时没有管他。
13.无法ping通www.baidu.com
如果能ping通 8.8.8.8,却不能ping通 www.baidu.com, 多半是虚拟机的dns配置不对,
【解决方法】
1 | ## 编辑DNS配置 |
14.Error response from daemon: filesystem operations against a running Hyper-V container are not supported
在windows 10上,使用 docker cp 命令,将文件拷贝到容器中,出现了这个错误:
【解决方法】
1 | ## 退出容器 |
1.Error response from daemon: filesystem operations against a running Hyper-V container are not supported
2.windows docker拷贝文件报错“filesystem operations against a running Hyper-V container are not supported” 停止容器docker stop zentao;拷贝文件;重启容器
15.System has not been booted with systemd as init system (PID 1). Can’t operate.Failed to connect to bus: Host is down
在docker pull centos:latest镜像之后,使用 yum install redis 安装完redis,运行:systemctl start redis 启动redis,直接报错了,看样子是无法执行特权命令
【解决方法】
1 | ## 启动一个容器时添加--privileged参数 |
1.docker 容器使用 systemctl 命令是报错 这里说是docker的bug,需要使用 docker run -itd –privileged,添加privileged这个参数才能运行
2.Docker systemctl 不能使用 System has not been booted with systemd as init system (PID 1). Can‘t operate. 这个也是使用privileged启动一个容器。
3.docker中执行systemctl命令问题记录和解决 解决方法也是添加 –privileged 参数。这篇文章其实是安装了sshd,并启动的问题解决方法,比如:No such file or directory 问题
4.docker在centos7中运行systemctl命令 如果想在容器启动时,启动systemctl,那么有两种方法:方法一,在dockerfile中加入:
CMD ["/usr/sbin/init"]
;方法二,在启动容器的时候,运行/usr/sbin/init,即在docker run 命令最后,加上/usr/sbin/init5.docker中centos容器执行systemctl命令异常 这的命令比较复杂,除了privileged参数之外,还有其他的一些东西
6.CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程 添加–privileged参数后,还是不行,将CMD或者entrypoint设置为/usr/sbin/init,容器卡死,最后增加了-d参数。
16.Windows does not support privileged mode
在windows上执行添加privileged参数,会报错:Windows does not support privileged mode。
这个问题让我很是头疼,不知道该如何是好,明明运行systemctl需要privileged参数,但是windows上似乎又偏偏不支持,难道就无法使用了吗?
【解决方法】
右键右下角的Docker图标,将容器模式由Windows改为Linux模式:Switch to Linux containers。这样再创建容器的时候,就不会出现这个 not support 的问题了。
这个时候要注意,经过转换之后,你原先在windows模式下创建的镜像就不见了,需要重新拉取。当切换回Windows模式之后,镜像又回来了。
1.Windows does not support privileged mode
2.Error response from daemon: Windows does not support privileged mode
3.windows docker 安装centOS系统
4.WSL2 的 Linux 中运行 systemctl 命令
5.Windows10中用Docker优雅的拥有一个自己的Linux环境 我估计作者也没有试验过吧,写着Windows10使用Docker,也用了privileged参数,但是实际上,下面的第一条评论,就是不支持privileged模式
6.create kic node: create container: Windows does not support privileged mode 这里有人说:Right click on the Docker Desktop icon and toggle switch to Linux containers two times,也就是把容器改为linux容器。
17.mac升级docker之后,镜像消失了
升级之后,我以前的镜像什么的,都没有了,我查找了文件,发现了有两个地方保存着Docker.raw文件,但是没有一些文章中说的:/Users/kyle/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw 文件。因为我已经很久没有动 mac 上的docker了,难道我真的记错了吗?我升级之前,让我点点那几个按钮是什么意思呢?是不是包含了什么重要的信息?
1 | ## 查找raw |
1.mac docker升级后镜像丢失修复 执行命令:
1 | cp ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw |
2.Macbook 升级 docker 后镜像文件丢失
3.Docker 教程——理解 Docker 镜像和容器的存储路径