资讯动态

虚拟机安装Docker全攻略:环境配置与优化实践

发布时间:2026/10/27 6:53:55 来源:尧图企业网站定制
1. 为什么要在虚拟机里装Docker这个问题我五年前第一次接触容器技术时就思考过。当时我的开发环境是Windows系统但项目需要部署在Linux服务器上。直接在Windows跑Docker会遇到各种兼容性问题而虚拟机提供了一个完美的隔离环境。虚拟机安装Docker的典型场景包括开发环境与生产环境隔离比如Windows开发但需要Linux容器学习测试时避免污染宿主机特别是尝试危险操作时资源受限情况下实现多环境隔离单台物理机运行多个隔离的Docker环境重要提示虽然Docker Desktop for Windows/Mac底层也是基于虚拟机技术但手动在虚拟机中安装Docker能获得更灵活的控制权适合需要深度定制的场景。2. 虚拟机环境准备2.1 虚拟机软件选型主流选择有三VMware Workstation Pro商业软件稳定性最佳推荐版本17.x优势快照功能完善网络配置灵活许可证密钥可通过官网购买约300美元永久授权VirtualBox开源免费最新版本7.0.x优势零成本跨平台支持好缺点3D加速性能较差Hyper-VWindows内置启用方式控制面板→程序和功能→启用Hyper-V注意与VMware/VirtualBox存在冲突需二选一我的选择建议企业环境VMware个人学习VirtualBoxWindows Server用户Hyper-V2.2 虚拟机系统配置以Ubuntu 22.04 LTS为例建议配置CPU: 至少2核推荐4核 内存: 4GB起步运行容器建议8GB 存储: 40GB动态分配磁盘 网络: NAT模式桥接模式需要额外配置避坑指南务必在BIOS中开启VT-x/AMD-V虚拟化支持否则性能损失高达70%。在Win10/11中可通过任务管理器→性能标签查看虚拟化是否已启用。3. Docker安装全流程3.1 基础环境配置先更新软件源并安装必要工具sudo apt update sudo apt upgrade -y sudo apt install -y ca-certificates curl gnupg lsb-release添加Docker官方GPG密钥sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg设置稳定版仓库echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null3.2 Docker引擎安装更新源并安装sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin验证安装sudo docker run hello-world看到Hello from Docker!说明安装成功。3.3 权限配置关键步骤避免每次sudosudo usermod -aG docker $USER newgrp docker # 立即生效测试无sudo运行docker ps若无权限错误提示则配置成功。4. 网络与存储优化4.1 解决网络问题虚拟机内Docker的典型网络问题端口映射失效检查项虚拟机网络模式应为NAT或桥接解决方案# 查看已映射端口 docker port 容器名 # 测试宿主机到虚拟机的连通性 telnet 虚拟机IP 映射端口镜像拉取缓慢配置国内镜像源// /etc/docker/daemon.json { registry-mirrors: [ https://registry.docker-cn.com, https://docker.mirrors.ustc.edu.cn ] }重启服务sudo systemctl restart docker4.2 存储空间管理虚拟机磁盘扩容步骤在虚拟机设置中增加磁盘容量在Ubuntu内扩展分区sudo apt install -y cloud-guest-utils sudo growpart /dev/sda 1 sudo resize2fs /dev/sda1清理Docker占用空间docker system prune -a --volumes5. 常见问题排错指南5.1 启动失败排查错误现象Cannot connect to the Docker daemon...排查步骤检查服务状态sudo systemctl status docker查看日志journalctl -u docker.service -b常见修复方案# 重置iptables sudo iptables -F sudo systemctl restart docker5.2 性能优化技巧磁盘IO优化# 使用更高效的存储驱动 echo {storage-driver:overlay2} | sudo tee /etc/docker/daemon.json内存限制# 限制单个容器内存使用 docker run -it --memory1g ubuntuCPU优先级# 设置CPU权重 docker run -it --cpu-shares512 ubuntu6. 进阶配置示例6.1 Docker Compose部署示例docker-compose.ymlversion: 3 services: web: image: nginx:alpine ports: - 8080:80 volumes: - ./html:/usr/share/nginx/html db: image: postgres:13 environment: POSTGRES_PASSWORD: example启动命令docker compose up -d6.2 容器监控方案安装cAdvisordocker run \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8081:8080 \ --detachtrue \ --namecadvisor \ gcr.io/cadvisor/cadvisor:v0.47.0访问 http://虚拟机IP:8081 查看监控数据。7. 安全加固建议禁止root直接运行sudo chmod 666 /var/run/docker.sock启用用户命名空间sudo echo {userns-remap:default} /etc/docker/daemon.json定期更新sudo apt update sudo apt upgrade docker-ce我在实际使用中发现虚拟机中的Docker环境最适合作为开发沙箱随时快照回滚多版本兼容性测试危险实验隔离环境最后分享一个实用命令快速清理所有容器docker rm -f $(docker ps -aq)

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑