linux docker 离线 安装
背景:客户提供了算力服务器。计划安装大模型,但要使用docker运行
- 拷贝docker压缩包docker-24.0.7.tgz,自行搜索下载吧。67M大小
- 解压缩到
/opt
tar xzvf /tmp/docker-24.0.7.tgz -C /opt/
- 二进制文件拷贝到系统目录拷贝到
/user/local/bin
目录下。我没有拷贝到/usr/bin目录下,因为有重名文件
- 创建 Docker 系统服务
vim /etc/systemd/system/docker.service
- 添加以下内容
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process[Install]
WantedBy=multi-user.target
- 创建 Docker Socket 文件
sudo vim /etc/systemd/system/docker.socket
[Unit]
Description=Docker Socket for the API
PartOf=docker.service[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker[Install]
WantedBy=sockets.target
- 创建 Docker 用户组并配置
# 创建 docker 用户组
sudo groupadd docker# 将当前用户添加到 docker 组(避免每次使用 sudo)
sudo usermod -aG docker $USER# 重新登录或刷新组权限
newgrp docker
- 启动并启用 Docker 服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload# 启动 Docker 服务
sudo systemctl start docker# 设置 Docker 开机自启
sudo systemctl enable docker# 检查 Docker 服务状态
sudo systemctl status docker
- 卸载。没用过,放着
# 停止服务
sudo systemctl stop docker
sudo systemctl disable docker# 删除二进制文件
sudo rm -f /usr/bin/docker /usr/bin/dockerd /usr/bin/containerd*# 删除解压目录
sudo rm -rf /opt/docker/# 删除服务文件
sudo rm -f /etc/systemd/system/docker.service /etc/systemd/system/docker.socket# 重新加载 systemd
sudo systemctl daemon-reload# 删除数据(谨慎!这会删除所有镜像和容器)
sudo rm -rf /var/lib/docker/