docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker和docker-compose离线安装

docker和docker-compose离线安装实践

作者: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

总结

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

您可能感兴趣的文章:
阅读全文