在 VMWare 中提示 VM 与 Device/Credential Guard 不兼容

如果开启虚拟机的时候提示:

  1. VM Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM

这说明本机中同时开启了 Hyper-v 服务,解决步骤如下:

  1. 禁用Device Guard或Credential Guard

运行 gpedit.msc 本地组策略编辑器。

转至 本地计算机策略 > 计算机配置 > 管理模板 > 系统 > Device Guard(或者是: 设备防护) > 打开基于虚拟化的安全性。 选择已禁用。
📃 常见错误解决方案 - 图1

  1. 通过命令关闭Hyper-V(控制面板关闭Hyper-V起不到决定性作用,要彻底关闭Hyper-V)

以管理员身份运行Windows Powershell (管理员)(Windows键+X),运行下面命令并重启电脑:

bcdedit /set hypervisorlaunchtype off
  1. 重启电脑即可

参考:解决VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法

docker WARNING: IPv4 forwarding is disabled.

连不上网,连不上网,连不上网,那叫一个郁闷,查了资料,发现解决方案其实很简单:

在宿主机上运行:

$ echo net.ipv4.ip_forward=1 >> /usr/lib/sysctl.d/00-system.conf
$ systemctl restart network && systemctl restart docker

即可解决。

参考:docker WARNING: IPv4 forwarding is disabled. 解决方法

ubuntu: Unable to locate package

在装了一个 Ubuntu 的 Docker 镜像后,attach 进入后使用 apt-get install 提示:Unable to locate package,解决方法很简单:

先执行 apt-get install 即可。

参考:Linux新手入门:Unable to locate package错误解决办法

在容器内 Permission denied

进入容器后, 查看当前目录提示 Permission denied

root@30cecd834d78:/usr/share/nginx/html# ls
ls: cannot open directory '.': Permission denied

解决方案有以下三种

  1. 在宿主机中执行 setenforce 0
  2. 运行时添加 --privileged=true
  3. 添加linux规则,把要挂载的目录添加到selinux白名单

更改安全性文本的格式如下

$ chcon [-R] [-t type] [-u user] [-r role] 文件或者目录

参数

  • -R :该目录下的所有目录也同时修改;
  • -t :后面接安全性本文的类型字段,例如 httpd_sys_content_t ;
  • -u :后面接身份识别,例如 system_u;
  • -r :后面街觇色,例如 system_r

例如

$ chcon -Rt svirt_sandbox_file_t ~/nginx/html

参考: Docker -v 对挂载的目录没有权限 Permission denied

no space left on device

启动容器的时候,报错:
image.png
现象:可能表现为文件、文件夹不能创建。
错误原因:服务器磁盘空间不足。