Docker环境离线安装指南

Docker环境离线安装指南

概述

本文档将指导您如何在Windows系统和CentOS系统上离线安装Docker和docker-compose,并使用hello-world进行环境测试。适用于无法连接互联网或需要离线部署的场景。

系统要求

Windows系统要求

  • Windows 10/11 (64位)
  • 至少4GB RAM
  • 至少10GB可用磁盘空间
  • 支持虚拟化的CPU

CentOS系统要求

  • CentOS 7/8/Stream (64位)
  • 至少2GB RAM
  • 至少5GB可用磁盘空间
  • 支持虚拟化的CPU

1. Windows系统 - Docker Desktop 离线安装

1.1 下载Docker Desktop安装包

在可以联网的Windows机器上下载Docker Desktop安装包:

bash 复制代码
# 使用PowerShell下载Docker Desktop
Invoke-WebRequest -Uri "https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe" -OutFile "DockerDesktopInstaller.exe"

或者直接从官网下载:

1.2 离线安装Docker Desktop

将下载的安装包传输到目标机器,然后执行:

cmd 复制代码
# 以管理员身份运行命令提示符
DockerDesktopInstaller.exe install --quiet

1.3 验证Docker安装

安装完成后,打开PowerShell或命令提示符验证:

cmd 复制代码
docker --version
docker-compose --version

2. Docker Compose 离线安装

2.1 下载Docker Compose

在联网机器上下载docker-compose:

bash 复制代码
# 下载最新版本的docker-compose
Invoke-WebRequest -Uri "https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe" -OutFile "docker-compose.exe"

2.2 安装Docker Compose

将下载的docker-compose.exe文件复制到目标机器的Docker安装目录:

cmd 复制代码
# 复制到Docker安装目录
copy docker-compose.exe "C:\Program Files\Docker\Docker\resources\bin\docker-compose.exe"

或者添加到系统PATH:

cmd 复制代码
# 将docker-compose.exe复制到系统PATH中的目录
copy docker-compose.exe "C:\Windows\System32\docker-compose.exe"

3. Docker环境测试

3.1 创建测试配置文件

创建docker-compose.yml文件:

yaml 复制代码
version: '3.8'

services:
  hello-world:
    image: hello-world
    container_name: docker-test
    restart: unless-stopped

3.2 离线镜像导入

如果需要使用hello-world镜像,可以导出和导入:

cmd 复制代码
# 在联网机器上导出镜像
docker save hello-world > hello-world.tar

# 在离线机器上导入镜像
docker load < hello-world.tar

3.3 运行测试

cmd 复制代码
# 启动测试容器
docker-compose up

# 或者直接运行hello-world
docker run hello-world

4. 常用Docker命令

4.1 基础命令

cmd 复制代码
# 查看Docker版本
docker --version

# 查看Docker信息
docker info

# 列出本地镜像
docker images

# 列出运行中的容器
docker ps

# 列出所有容器
docker ps -a

4.2 容器管理

cmd 复制代码
# 启动容器
docker start <container_id>

# 停止容器
docker stop <container_id>

# 重启容器
docker restart <container_id>

# 删除容器
docker rm <container_id>

# 删除镜像
docker rmi <image_id>

4.3 Docker Compose命令

cmd 复制代码
# 启动服务
docker-compose up

# 后台启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 查看服务状态
docker-compose ps

# 查看服务日志
docker-compose logs

5. 故障排除

5.1 常见问题

  1. Docker Desktop无法启动

    cmd 复制代码
    # 重启Docker服务
    net stop com.docker.service
    net start com.docker.service
  2. 权限问题

    cmd 复制代码
    # 以管理员身份运行PowerShell
    Start-Process powershell -Verb runAs
  3. 端口冲突

    cmd 复制代码
    # 查看端口占用
    netstat -ano | findstr :8080
    
    # 结束占用端口的进程
    taskkill /PID <process_id> /F

5.2 日志查看

cmd 复制代码
# 查看Docker日志
docker logs <container_id>

# 实时查看日志
docker logs -f <container_id>

# 查看Docker Compose日志
docker-compose logs -f

6. 性能优化

6.1 资源配置

在Docker Desktop设置中调整资源分配:

  • 内存:建议分配4GB以上
  • CPU:建议分配2核以上
  • 磁盘:确保有足够空间

6.2 镜像优化

cmd 复制代码
# 清理未使用的镜像
docker image prune

# 清理所有未使用的资源
docker system prune -a

7. 安全注意事项

  1. 网络安全

    • 在离线环境中使用Docker时,确保网络隔离
    • 定期更新Docker版本以修复安全漏洞
  2. 镜像安全

    • 只使用可信的Docker镜像
    • 定期扫描镜像中的安全漏洞
  3. 数据安全

    • 定期备份重要的容器数据
    • 使用数据卷来持久化重要数据

8. 总结

通过以上步骤,您可以在Windows系统上成功安装和配置Docker环境,并使用hello-world进行测试验证。离线安装方式特别适用于企业内网环境或无法连接互联网的场景。

关键要点

  1. 确保下载正确的Windows版本安装包
  2. 以管理员权限执行安装命令
  3. 正确配置Docker Compose文件
  4. 定期维护和更新Docker环境

参考资料


9. CentOS系统 - Docker离线安装

9.1 下载Docker安装包

在可以联网的CentOS机器上下载Docker安装包:

bash 复制代码
# 创建下载目录
mkdir -p ~/docker-offline
cd ~/docker-offline

# 下载Docker CE安装包
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yumdownloader --resolve docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 下载依赖包
yumdownloader --resolve device-mapper-persistent-data lvm2

9.2 创建离线安装包

bash 复制代码
# 创建RPM包目录
mkdir -p docker-rpms
cp *.rpm docker-rpms/

# 创建安装脚本
cat > install-docker.sh << 'EOF'
#!/bin/bash
echo "开始安装Docker..."

# 安装依赖包
rpm -ivh device-mapper-persistent-data-*.rpm
rpm -ivh lvm2-*.rpm

# 安装Docker包
rpm -ivh containerd.io-*.rpm
rpm -ivh docker-ce-cli-*.rpm
rpm -ivh docker-ce-*.rpm
rpm -ivh docker-buildx-plugin-*.rpm
rpm -ivh docker-compose-plugin-*.rpm

# 启动Docker服务
systemctl start docker
systemctl enable docker

echo "Docker安装完成!"
docker --version
EOF

chmod +x install-docker.sh

9.3 离线安装Docker

将整个docker-offline目录传输到目标CentOS机器,然后执行:

bash 复制代码
cd docker-offline
./install-docker.sh

9.4 验证Docker安装

bash 复制代码
# 检查Docker版本
docker --version

# 检查Docker Compose版本
docker compose version

# 测试Docker运行
docker run hello-world

10. CentOS系统 - Docker Compose离线安装

10.1 下载Docker Compose

在联网机器上下载docker-compose:

bash 复制代码
# 下载最新版本的docker-compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o docker-compose

# 添加执行权限
chmod +x docker-compose

10.2 安装Docker Compose

将下载的docker-compose文件复制到目标机器:

bash 复制代码
# 复制到系统PATH
sudo cp docker-compose /usr/local/bin/docker-compose

# 创建软链接
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# 验证安装
docker-compose --version

11. CentOS系统 - Docker环境测试

11.1 创建测试配置文件

创建docker-compose.yml文件:

yaml 复制代码
version: '3.8'

services:
  hello-world:
    image: hello-world
    container_name: docker-test
    restart: unless-stopped

11.2 离线镜像导入

bash 复制代码
# 在联网机器上导出镜像
docker save hello-world > hello-world.tar

# 在离线机器上导入镜像
docker load < hello-world.tar

11.3 运行测试

bash 复制代码
# 启动测试容器
docker-compose up

# 或者直接运行hello-world
docker run hello-world

12. CentOS系统 - 常用命令

12.1 系统服务管理

bash 复制代码
# 启动Docker服务
sudo systemctl start docker

# 停止Docker服务
sudo systemctl stop docker

# 重启Docker服务
sudo systemctl restart docker

# 设置开机自启
sudo systemctl enable docker

# 查看服务状态
sudo systemctl status docker

12.2 Docker命令

bash 复制代码
# 查看Docker信息
docker info

# 查看Docker版本
docker --version

# 列出镜像
docker images

# 列出容器
docker ps -a

# 清理未使用的资源
docker system prune -a

12.3 用户权限配置

bash 复制代码
# 将当前用户添加到docker组
sudo usermod -aG docker $USER

# 重新登录或重启系统使权限生效
# 或者执行以下命令立即生效
newgrp docker

13. CentOS系统 - 故障排除

13.1 常见问题

  1. Docker服务启动失败

    bash 复制代码
    # 查看服务日志
    sudo journalctl -u docker.service
    
    # 重启Docker服务
    sudo systemctl restart docker
  2. 权限问题

    bash 复制代码
    # 确保用户在docker组中
    groups $USER
    
    # 重新添加用户到docker组
    sudo usermod -aG docker $USER
  3. 存储驱动问题

    bash 复制代码
    # 查看存储驱动
    docker info | grep "Storage Driver"
    
    # 修改存储驱动(在/etc/docker/daemon.json中)
    sudo tee /etc/docker/daemon.json <<EOF
    {
      "storage-driver": "overlay2"
    }
    EOF
    
    # 重启Docker服务
    sudo systemctl restart docker

13.2 性能优化

bash 复制代码
# 配置Docker守护进程
sudo tee /etc/docker/daemon.json <<EOF
{
  "storage-driver": "overlay2",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

# 重启Docker服务
sudo systemctl restart docker

14. 总结

通过以上步骤,您可以在Windows和CentOS系统上成功安装和配置Docker环境,并使用hello-world进行测试验证。离线安装方式特别适用于企业内网环境或无法连接互联网的场景。

关键要点

  1. 确保下载正确的系统版本安装包
  2. 以管理员/root权限执行安装命令
  3. 正确配置Docker Compose文件
  4. 定期维护和更新Docker环境
  5. 注意系统权限和用户组配置

参考资料


本文档基于实际项目经验编写,如有问题请及时反馈。

相关推荐
草堂春睡足2 小时前
【数据迁移】Windows11 下将 Ubuntu 从 C 盘迁移到 D 盘
linux·windows·ubuntu·docker
热心市民梁先生3 小时前
oect刷入arm系统安装docker
运维·docker·容器
Joemt4 小时前
ubuntu22.04离线一键安装gpu版docker
docker·容器·eureka
爱掉发的小李5 小时前
Linux 环境下 Docker 安装与简单使用指南
java·linux·运维·c++·python·docker·php
Dontla8 小时前
docker desktop入门(docker桌面版)(提示wsl版本太低解决办法)
运维·docker·容器
兽兽9 小时前
【无标题】
docker
东风微鸣9 小时前
ArgoCD:我的GitOps探索之旅与未来展望
docker·云原生·kubernetes·可观察性
Adorable老犀牛15 小时前
DockerFile文件执行docker bulid自动构建镜像
运维·docker·容器
掘根17 小时前
【MySQL集群架构与实践5】使用Docker实现水平分片
mysql·docker·架构