解决 Docker 与 VMware 的冲突问题,需要经过以下几步:
1. 确认是否存在冲突
首先在使用前,我们需要确认是否存在冲突,可以输入以下命令查看当前是否存在已经启动的 vmware 大写堆栈:
lsmod | grep -i vmw
如果输出了类似 vmw_vsock_vmci_transport
或者 vmw_vmci
的关键词,则说明存在已经启动的 vmware 大写堆栈,这时候需要关闭该堆栈。
2. 关闭 vmware 大写堆栈
下面是关闭 vmware 大写堆栈的具体步骤:
- 执行以下命令,卸载
vmw_vmci
模块:
sudo modprobe -r vmw_vmci
- 执行以下命令,卸载
vmmon
模块:
sudo modprobe -r vmmon
- 执行以下命令,停止
vmware
服务:
sudo systemctl stop vmware.service
- 执行以下命令,停止
vmware
内核模块:
sudo vmware-modconfig --console --disable-kernel-modules
- 重启系统生效:
sudo reboot
重启后,检查是否成功卸载 vmware 大写堆栈:
lsmod | grep -i vmw
如果没有任何输出,则说明成功卸载 vmware 大写堆栈。
3. 配置 Docker
以下将分别对 Linux 和 Windows 环境下如何配置 Docker 进行说明:
Linux
修改 /etc/docker/daemon.json
文件,在其中添加以下内容:
{
"default-ulimits": {"memlock": {"Name": "memlock", "Hard": -1, "Soft": -1}},
"userns-remap": "default"
}
然后重启 Docker 服务:
systemctl restart docker.service
Windows
右击 Docker Desktop,选择 Settings,选择 Advanced,选择 Authentication:
- 勾选 "Expose daemon on tcp://localhost:2375 without TLS"。
- 点击 Apply 和 Restart。
然后打开 PowerShell,输入命令 setx DOCKER_HOST tcp://localhost:2375
,让 Docker 使用监听 2375 端口。
4. 启动 Docker 容器
现在 Docker 和 vmware 已经可以和平相处了,接下来我们可以启动 Docker 容器了。
以启动 Ubuntu18.04 容器为例,先下载镜像:
docker pull ubuntu:18.04
然后运行交互式的容器:
docker run -it --rm -d --name myUbuntu ubuntu:18.04
这条命令会在后台启动一个名为 myUbuntu 的容器,打开一个交互式终端并且使用 ubuntu:18.04 镜像。
我们可以进入容器内查看:
docker exec -it myUbuntu bash
这条命令可以进入 myUbuntu 容器内的 bash shell。
以上就是解决 Docker 和 VMware 冲突的攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决docker与vmware的冲突问题 - Python技术站