Docker 离线安装

参考
https://docs.docker.com/engine/install/binaries/

安装

  1. 下载 Docker 二进制文件
    你可以从以下两个链接之一下载 Docker 二进制文件:

    选择合适的 Docker 版本进行下载。以 docker-27.5.1.tgz 为例: docker-27.5.1.tgz

  2. 解压文件
    下载完成后,可以使用以下命令解压缩 Docker 包:

    tar -zxvf docker-27.5.1.tgz
    
  3. 复制到 /usr/bin 目录
    解压后,将 Docker 二进制文件复制到 /usr/bin 目录,以便全系统使用:

    sudo cp docker/* /usr/bin/
    
  4. 启动 Docker 守护进程
    使用以下命令启动 Docker 守护进程:

    sudo dockerd &
    

    如果不希望日志输出到当前的命令行终端,所以把日志写到某个文件

    mkdir -p /app/docker
    dockerd &> /app/docker/dockerd.log &
    
  5. 验证 Docker 安装是否成功
    运行以下命令检查 Docker 版本:

    docker -v
    

卸载

  1. 查找 Docker 进程
    使用以下命令查找正在运行的 Docker 进程:

    ps -ef | grep dockerd
    
  2. 停止 Docker 进程
    使用 kill 命令终止 Docker 进程:

    kill -9 PID
    

    其中,PID 是 Docker 守护进程的进程 ID,使用 ps 命令找到。

  3. 删除 Docker 文件
    删除与 Docker 相关的文件和目录:

    sudo rm -rf /var/run/docker
    sudo rm -rf /var/run/docker.sock
    sudo rm -rf /var/run/docker.pid
    sudo rm -rf /etc/systemd/system/docker.service
    sudo rm -rf /etc/docker/daemon.json
    sudo rm -rf ~/.docker/
    
  4. 删除 Docker 二进制文件
    删除 /usr/bin 目录中的 Docker 二进制文件:

    sudo rm -f \
    /usr/bin/containerd \
    /usr/bin/containerd-shim-runc-v2 \
    /usr/bin/ctr \
    /usr/bin/docker \
    /usr/bin/dockerd \
    /usr/bin/docker-init \
    /usr/bin/docker-proxy \
    /usr/bin/runc
    

目录结构说明

执行 tree 命令列出 Docker 解压后的目录结构时,可以看到以下文件:

[root@localhost docker]# tree
.
├── containerd                # Containerd 服务进程
├── containerd-shim-runc-v2    # Containerd 用于管理容器的子进程
├── ctr                       # Containerd 控制命令行工具
├── docker                    # Docker 二进制执行文件
├── dockerd                   # Docker 守护进程
├── docker-init               # Docker 初始化进程
├── docker-proxy              # Docker 网络代理
└── runc                      # 容器运行时

这些文件是 Docker 引擎和相关组件的二进制文件,在安装和运行 Docker 时会用到。

通过这种方式,你可以安装、配置以及卸载 Docker。

开机启动

添加文件

vi /usr/lib/systemd/system/docker.service

内容

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd --host=unix:///var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
Restart=always
RestartSec=3
StartLimitAbortSec=30s

[Install]
WantedBy=multi-user.target

上面的 StartLimitAbortSec=30s 这一句,老版本 systemd(如 CentOS7,systemd 219)不支持,会报错 Unknown lvalue 'StartLimitAbortSec'

命令

# 重新加载 systemd 配置文件
systemctl daemon-reload

# 启用 Docker 开机启动
systemctl enable docker

# 启动 Docker 服务
systemctl start docker

# 检查 Docker 服务状态
systemctl status docker
posted @ 2024-12-17 10:57  ioufev  阅读(333)  评论(0)    收藏  举报