docker和docker-compose离线安装实践

 更新时间:2025年12月01日 15:23:12   作者:lakelh1  
文章介绍了如何在离线环境中安装Docker和Docker Compose,包括下载、解压、移动文件、启动服务和验证步骤

一、docker 离线安装

# uname -r
3.10.0-1160.119.1.el7.x86_64

1. 下载地址

Index of linux/static/stable/x86_64/

选择版本下载或

sudo wget https://download.docker.com/linux/static/stable/x86_64/docker-28.0.4.tgz

2. 解压

sudo tar -zxvf docker-28.0.4.tgz

3. 移动文件

sudo mv docker/* /usr/local/bin/

4. 启动docker

4.1 manage_docker.sh

#!/bin/bash

# 检查传入的参数
if [ $# -ne 1 ]; then
  echo "Usage: $0 {start|stop|status|restart}"
  exit 1
fi

# 定义变量
DOCKER_BIN="/usr/local/bin/dockerd"
DOCKER_PID_FILE="/var/run/docker.pid"
DOCKER_LOG_FILE="/var/log/docker.log"

# 启动 Docker
start_docker() {
  if [ -f "$DOCKER_PID_FILE" ]; then
    if ps -p $(cat $DOCKER_PID_FILE) -o comm= | grep -qw dockerd; then
      echo "Docker is already running (PID: $(cat $DOCKER_PID_FILE))"
      return 0
    else
      echo "Stale PID file found. Cleaning up..."
      rm -f "$DOCKER_PID_FILE"
    fi
  fi

  echo "Starting Docker..."
  nohup $DOCKER_BIN > "$DOCKER_LOG_FILE" 2>&1 &
  sleep 2  # 等待 dockerd 启动完成
  
  if ps -p $! -o comm= | grep -qw dockerd; then
    echo $! > "$DOCKER_PID_FILE"
    echo "Docker started successfully (PID: $!)"
  else
    echo "Failed to start Docker. Check $DOCKER_LOG_FILE for details."
    exit 1
  fi
}

# 停止 Docker
stop_docker() {
  if [ -f "$DOCKER_PID_FILE" ]; then
    if ps -p $(cat $DOCKER_PID_FILE) -o comm= | grep -qw dockerd; then
      echo "Stopping Docker..."
      kill $(cat $DOCKER_PID_FILE)
      rm -f "$DOCKER_PID_FILE"
      echo "Docker stopped successfully."
    else
      echo "Stale PID file found. Cleaning up..."
      rm -f "$DOCKER_PID_FILE"
    fi
  else
    echo "Docker is not running."
  fi
}

# 检查 Docker 状态
status_docker() {
  if [ -f "$DOCKER_PID_FILE" ]; then
    if ps -p $(cat $DOCKER_PID_FILE) -o comm= | grep -qw dockerd; then
      echo "Docker is running (PID: $(cat $DOCKER_PID_FILE))"
    else
      echo "Docker is not running."
    fi
  else
    echo "Docker is not running."
  fi
}

# 重启 Docker
restart_docker() {
  stop_docker
  start_docker
}

# 根据用户输入执行相应的操作
case "$1" in
  start)
    start_docker
    ;;
  stop)
    stop_docker
    ;;
  status)
    status_docker
    ;;
  restart)
    restart_docker
    ;;
  *)
    echo "Invalid option: $1"
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0

4.2 使用

chmod +x manage_docker.sh # 赋予可执行权限

./manage_docker.sh start   # 启动 Docker
./manage_docker.sh stop    # 停止 Docker
./manage_docker.sh status  # 查看 Docker 状态
./manage_docker.sh restart # 重启 Docker

4.3 验证

# ./manage_docker.sh start
Starting Docker...
Docker started successfully (PID: 2792)
# docker --version 
Docker version 28.0.4, build b8034c0

二、docker-compose 离线安装

地址:

https://github.com/docker/compose/releases

选择版本下载

wget https://github.com/docker/compose/releases/download/v2.35.0/docker-compose-linux-x86_64

1. 移动并赋权

sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose

2. 验证

# docker-compose --version
Docker Compose version v2.35.0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Docker容器中运行Nginx的详细教程

    在Docker容器中运行Nginx的详细教程

    Nginx 是一款高性能 Web 服务器,常被用作反向代理、负载均衡器以及内容缓存,当你将 Nginx 运行在 Docker 容器中时,还能进一步获得可移植性、快速部署和更整洁的管理体验,本教程将带你从零开始学习如何使用 Docker 部署 Nginx,需要的朋友可以参考下
    2025-10-10
  • Visual Studio发布 Docker 镜像的实现步骤

    Visual Studio发布 Docker 镜像的实现步骤

    本文详细指导如何在Visual Studio中为ASP.NET Core WebAPI项目集成Docker支持,包括配置步骤、编写Dockerfile、测试代码、launchSettings.json配置及docker-compose.yml编写,感兴趣的可以了解一下
    2026-04-04
  • docker配置普通用户访问的三种方法

    docker配置普通用户访问的三种方法

    本文主要介绍了docker配置普通用户访问的三种方法,让普通用户在Ubuntu系统上无需使用sudo权限即可使用Docker,每种方法都详细说明了具体步骤,并附带了相关命令,感兴趣的可以了解一下
    2024-11-11
  • docker中查看日志的几种常见方式

    docker中查看日志的几种常见方式

    这篇文章主要给大家介绍了关于docker中查看日志的几种常见方式,Docker提供一些方式来查看容器的日志,文中将每种方法都给出了代码示例,需要的朋友可以参考下
    2023-08-08
  • 使用Docker部署todo任务管理器的实现

    使用Docker部署todo任务管理器的实现

    本文介绍使用Docker部署Todo任务管理器的全过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-07-07
  • Docker同时安装MySQL和MariaDB的方法步骤

    Docker同时安装MySQL和MariaDB的方法步骤

    这篇文章主要介绍了Docker同时安装MySQL和MariaDB的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • docker之如何搭建VXXXN

    docker之如何搭建VXXXN

    文章介绍了如何快速搭建IPsec-vvv-server并配置以启动和运行,首先在服务器上执行相关命令,然后查看运行情况并配置安全组开放指定端口,测试使用Win10系统自带的VXXXN应用连接失败,但手机连接成功,文章提供了一定的配置指导,并鼓励大家参考和支持
    2025-01-01
  • Docker搭建简单的应用栈与容器Hello World访问详解

    Docker搭建简单的应用栈与容器Hello World访问详解

    这篇文章主要介绍了Docker搭建简单的应用栈与容器Hello World访问,结合实例形式详细分析了Docker应用容器栈的获取、互联、启动、配置以及应用访问测试相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • docker pull拉取超时的解决方案

    docker pull拉取超时的解决方案

    这篇文章主要介绍了docker pull拉取超时的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Centos8安装docker报错(错误提示:All mirrors were tried)的问题

    Centos8安装docker报错(错误提示:All mirrors were tried)的问题

    最近总是遇到“All mirrors were tried”的报错信息,没办法,就rm -rf /etc/yum.repos.d/* 全部!删了,下面小编通过本文给大家介绍下Centos8安装docker报错(错误提示:All mirrors were tried)的问题及解决过程,感兴趣的朋友一起看看吧
    2022-03-03

最新评论