首页 / 资讯中心 / 文章详情

Ubuntu/CentOS/Windows11全平台Docker安装指南

Ubuntu/CentOS/Windows11全平台Docker安装指南 ★ FEATURED ARTICLE
1. 为什么需要全平台Docker安装指南容器化技术已经成为现代开发和运维的标配工具但不同操作系统平台的安装过程存在显著差异。Ubuntu作为最流行的Linux发行版之一CentOS在企业服务器领域占据重要地位而Windows11则是开发者日常使用的主力系统。这三个平台的Docker安装方法和常见问题各不相同这也是为什么需要一份全面的跨平台指南。我在实际工作中发现即便是经验丰富的开发者在切换操作系统环境时也经常遇到Docker安装失败的情况。特别是在Windows平台上虚拟化支持、WSL配置等问题导致的安装失败尤为常见。这份指南将基于我多年在多平台部署Docker的经验提供详细的安装步骤和实战中积累的避坑技巧。2. Ubuntu系统Docker安装详解2.1 系统准备与环境检查在Ubuntu上安装Docker前首先需要确认系统架构和版本。执行以下命令检查系统信息lsb_release -a uname -m对于Ubuntu 20.04/22.04等现代版本推荐使用官方仓库安装。先卸载可能存在的旧版本sudo apt-get remove docker docker-engine docker.io containerd runc更新apt索引并安装依赖包sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release2.2 添加Docker官方GPG密钥添加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/null2.3 安装Docker引擎更新apt索引并安装Dockersudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin验证安装是否成功sudo docker run hello-world注意如果遇到权限问题可以将当前用户加入docker组sudo usermod -aG docker $USER然后需要重新登录使更改生效。3. CentOS系统Docker安装指南3.1 CentOS版本适配与准备CentOS 7和CentOS 8的安装方式有所不同。首先确认系统版本cat /etc/redhat-release对于CentOS 7需要先安装必要的工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2CentOS 8默认使用podman而不是docker需要添加Docker CE仓库sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo3.2 Docker安装与配置安装Docker引擎sudo yum install docker-ce docker-ce-cli containerd.io启动Docker服务并设置开机自启sudo systemctl start docker sudo systemctl enable docker验证安装sudo docker run hello-world3.3 SELinux问题处理CentOS默认启用SELinux可能导致容器权限问题。有两种解决方案临时关闭SELinux不推荐生产环境sudo setenforce 0安装SELinux策略推荐sudo yum install -y container-selinux4. Windows 11平台Docker安装4.1 系统要求检查Windows 11安装Docker Desktop需要满足以下条件64位Windows 11 Pro/Enterprise/Education版本启用Hyper-V和WSL2功能BIOS中开启虚拟化支持(VT-x/AMD-V)检查虚拟化是否启用打开任务管理器 → 性能选项卡查看虚拟化是否显示已启用4.2 启用必要功能以管理员身份打开PowerShell执行dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启计算机后设置WSL2为默认版本wsl --set-default-version 24.3 安装Docker Desktop从Docker官网下载Windows版安装包双击运行安装程序按照向导完成安装安装完成后启动Docker Desktop常见问题如果启动时提示Virtualization support not detected需要确认BIOS中已开启虚拟化关闭Hyper-V后重新启用执行bcdedit /set hypervisorlaunchtype auto后重启5. 多平台通用配置与优化5.1 镜像加速配置国内用户建议配置镜像加速器在/etc/docker/daemon.json中添加Linux{ registry-mirrors: [ https://registry.docker-cn.com, https://docker.mirrors.ustc.edu.cn ] }Windows和Mac在Docker Desktop的Preferences → Docker Engine中配置。5.2 存储驱动选择根据系统环境选择合适的存储驱动Linux默认overlay2Windowswindowsfilter旧版CentOSdevicemapper检查当前存储驱动docker info | grep Storage Driver5.3 资源限制调整在Docker Desktop中可以通过GUI调整CPU、内存等资源分配。Linux系统可以通过修改/etc/docker/daemon.json配置{ default-ulimits: { nofile: { Name: nofile, Hard: 65535, Soft: 65535 } } }6. 实战避坑指南6.1 常见安装问题排查问题1Ubuntu上docker命令找不到解决方案sudo apt-get install docker.io问题2CentOS端口冲突检查端口占用sudo netstat -tulnp | grep 端口号问题3Windows WSL2启动失败重置WSLwsl --shutdown wsl --unregister Ubuntu6.2 性能优化技巧Linux平台使用SSD存储调整内核参数echo vm.max_map_count262144 /etc/sysctl.confWindows平台将Docker数据目录放在SSD上增加WSL2内存限制 在%UserProfile%/.wslconfig中添加[wsl2] memory8GB6.3 安全最佳实践不要使用root用户直接运行容器定期更新Docker版本使用非特权端口1024限制容器资源使用docker run -it --cpus.5 --memory512m ubuntu7. 验证安装与基础使用7.1 运行测试容器在所有平台验证安装是否成功docker run --rm hello-world7.2 常用命令速查命令说明docker ps查看运行中的容器docker images列出本地镜像docker pull 镜像拉取镜像docker exec -it 容器 bash进入运行中的容器docker logs 容器查看容器日志7.3 编写第一个Dockerfile创建一个简单的Python应用DockerfileFROM python:3.9-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD [python, app.py]构建并运行docker build -t my-python-app . docker run -p 4000:80 my-python-app8. 进阶配置与网络设置8.1 自定义网络创建创建自定义桥接网络docker network create --driver bridge my-bridge-network运行容器并连接到自定义网络docker run -d --name web --network my-bridge-network nginx8.2 数据卷管理创建持久化数据卷docker volume create my-data挂载数据卷到容器docker run -v my-data:/data alpine8.3 容器互联与通信链接容器传统方式docker run -d --name redis redis docker run --link redis:redis alpine使用自定义网络推荐方式docker run -d --name redis --network my-bridge-network redis docker run --network my-bridge-network alpine ping redis9. 容器监控与日志管理9.1 资源监控查看容器资源使用情况docker stats获取详细容器信息docker inspect 容器ID9.2 日志收集查看容器日志docker logs 容器ID跟踪实时日志docker logs -f 容器ID9.3 性能分析工具使用cAdvisor监控容器docker run \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8080:8080 \ --detachtrue \ --namecadvisor \ google/cadvisor:latest10. 实际应用场景示例10.1 开发环境搭建使用Docker搭建Python开发环境FROM python:3.9 WORKDIR /code COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD [python, manage.py, runserver, 0.0.0.0:8000]10.2 数据库容器化运行MySQL容器docker run --name some-mysql \ -e MYSQL_ROOT_PASSWORDmy-secret-pw \ -p 3306:3306 \ -d mysql:latest10.3 多容器应用部署使用docker-compose部署WordPressversion: 3 services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - 8000:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data:
阅读完成 · 觉得有帮助?
咨询建站