内网环境下离线安装 Docker 的详细步骤:
一、系统要求检查
-
确认内核版本
Docker 要求 Linux 内核版本≥3.10,通过以下命令查看:uname -r # 示例输出:3.10.0-957.5.1.el7.x86_64(需满足≥3.10)
-
确认系统版本
需为 CentOS 7 系列,查看命令:cat /etc/redhat-release # 示例输出:CentOS Linux release 7.6.1810 (Core)
二、下载并解压 Docker 二进制文件
-
下载二进制包
在有网络的环境中,从 Docker 官方静态文件地址下载对应版本的 tgz 包:- 下载地址:Index of linux/static/stable/x86_64/
- 选择合适版本(如
docker-26.1.3.tgz
),下载后传输到内网服务器。
-
解压文件
在服务器上解压下载的 tgz 包:tar -zxvf docker-26.1.3.tgz # 替换为实际下载的文件名
三、安装 Docker
-
复制文件到系统目录
将解压出的docker
文件夹内的所有文件复制到/usr/bin/
(系统可执行目录):cp docker/* /usr/bin/
-
验证基础安装
执行以下命令,若输出版本信息则基础文件复制成功:docker -v # 或 docker info
四、配置 Docker 服务(开启守护进程)
-
创建服务配置文件
编写docker.service
文件,用于系统管理 Docker 服务:vim /etc/systemd/system/docker.service
填入以下内容(根据需求选择是否开启远程连接):
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # 不开启远程连接(默认) ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536 # 如需开启远程连接,替换为以下行(允许所有IP通过2375端口访问) # ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536 ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target
-
设置文件权限
赋予服务文件可执行权限:chmod +x /etc/systemd/system/docker.service
-
加载并启动服务
# 重新加载系统服务配置 systemctl daemon-reload # 启动Docker服务 systemctl start docker
五、配置 Docker 镜像源(可选)
-
创建配置文件
配置镜像加速(如阿里云)和日志限制,避免磁盘占用过高:# 创建目录和文件 mkdir -p /etc/docker vim /etc/docker/daemon.json
填入以下内容(替换为个人镜像源):
{ "registry-mirrors": ["https://ejes884z.mirror.aliyuncs.com"], # 替换为自己的镜像源 "log-driver": "json-file", "log-opts": {"max-size": "1g", "max-file": "3"}, # 日志限制:单个文件1G,最多3个 "live-restore": true # 配置更新时自动加载,无需重启Docker }
-
重启 Docker 使配置生效
systemctl restart docker
六、Docker 服务管理命令
操作 | 命令 |
---|---|
重新加载配置文件 | systemctl daemon-reload |
启动服务 | systemctl start docker |
查看运行状态 | systemctl status docker |
停止服务 | systemctl stop docker |
重启服务 | systemctl restart docker |
设置开机自启 | systemctl enable docker |
禁用开机自启 | systemctl disable docker |
查看开机自启状态 | systemctl is-enabled docker.service |
查看版本 | docker -v 或 docker version |
启动所有容器 | docker start $(docker ps -a -q) |
七、离线环境中镜像的导入与导出
-
导出镜像(在有网络的服务器)
docker save 镜像ID > 镜像名.tar # 示例:docker save 99ee9af2b6b1 > redis.tar
-
导入镜像(在内网服务器)
docker load < 镜像名.tar # 示例:docker load < redis.tar
-
为导入的镜像添加标签
导入的镜像默认无名称和标签,需手动添加:docker tag 镜像ID 镜像名:版本号 # 示例:docker tag 99ee9af2b6b1 redis:3.2.0
通过以上步骤,即可在无网络的内网环境中完成 Docker 的离线安装与配置。