在Linux系统中,离线安装Docker通常发生在以下情况:
网络限制:在某些部署环境下,由于网络限制或防火墙设置,可能无法直接从Docker的官方仓库在线安装Docker。
安全性考虑:有些环境出于安全考虑,不允许直接访问外部网络,因此需要通过离线方式安装和更新软件。
稳定性需求:对于需要高度稳定性的系统,离线安装可以确保Docker的版本与系统的其他组件兼容,避免在线更新带来的潜在风险。
下面我们看下具体的操作方法。
离线手动安装
本文章安装的包为:docker-20.10.9
1.复制docker-20.10.9.tgz到服务器上,解压
下载地址:https://gitcode.com/Premium-Resources/8c866/?utm_source=article_gitcode_universal&index=bottom&type=card
tar -zxvf docker-20.10.9.tgz
2.复制到指定目录
将解压docker目录下所有文件复制到/usr/bin目录下,目的/user/bin是环境变量目录
mv docker/* /usr/bin/
3.编辑配置文件
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
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4.修改执行权限
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
5.设置开机启动
systemctl enable docker.service
6.启动docker
systemctl start docker
7.验证
docker -v
使用脚本离线自动安装docker方法
将安装包上传后,与脚本放同一目录里
#!/bin/bash
# 安装Docker脚本
set -e # 一旦脚本中有命令执行失败(返回值非零),则立即退出
# 检查是否使用root用户运行脚本
if [[ $EUID -ne 0 ]]; then
echo "此脚本必须以root用户身份运行"
exit 1
fi
# 解压Docker包
echo "解压Docker包..."
tar -xvf docker-20.10.9.tgz
# 更改Docker文件夹及其内容的权限
echo "更改Docker文件夹权限..."
chmod 755 -R docker/
# 将Docker可执行文件复制到/usr/bin/目录
echo "复制Docker可执行文件到系统目录..."
cp docker/* /usr/bin/
# 定义Docker服务文件内容
docker_service_content='
[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
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
'
# 创建Docker服务文件
echo "创建Docker服务文件..."
echo "$docker_service_content" | tee /etc/systemd/system/docker.service > /dev/null
# 重新加载systemd配置
echo "重新加载systemd配置..."
systemctl daemon-reload
# 启用Docker服务
echo "启用Docker服务..."
systemctl enable docker.service
# 启动Docker服务
echo "启动Docker服务..."
systemctl start docker
echo "Docker安装完成!"
使用上述脚本
vim docker-install.sh
复制上述脚本
chmod a+x docker-install.sh
./docker-install.sh
在线安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内的
curl -sSL https://get.daocloud.io/docker | sh