无网环境Docker Rpm离线安装

总体思路:找一台可以联网的linux,下载docker的RPM依赖包而不进行安装(yum localinstall),将所有依赖的rpm环境打包好,再在无网环境中解压逐一安装(rpm: --force --nodeps)。

提前准备docker的RPM依赖包

我这里操作系统版本是 CentOS Linux release 7.9.2009 (Core)

默认的yum软件源是http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock 国内加载这个比较慢,经常会报异常。建议添加国内的yum源地址。

-bash: yum-config-manager: 未找到命令

问题原因:系统默认没有安装这个命令 yum-config-manager ,这个命令在 yum-utils 包里。
解决办法:安装 yum-utils 包

sudo yum -y install yum-utils

输出“完毕!”标识安装完成。

添加yum软件源信息(国内有很多,我这里添加阿里):

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

添加yum软件源完成:

更新 yum 缓存:

sudo yum makecache fast

如图:

下载所有安装依赖到指定路径下:

mkdir -vp /home/docker-rpm/

sudo yum install docker-ce --downloadonly --downloaddir=/home/docker-rpm/

如图:


安装 1 软件包 (+16 依赖软件包)
总下载量:98 M
安装大小:361 M
解释:标准的--downloadonly(只下载,不安装) 的选项来达到这个目的。

将所有依赖的rpm环境打包:

sudo tar -czvf docker-ce-20-CentOS7.9-rpm.tar.gz docker-rpm/

无网环境安装:

创建安装脚本(install-docker-offline.sh):

#! /bin/bash
# author: xiongzaiqiren
# date: 2022-11-31
# usage: sh install-docker-offline.sh
# 安装docker请执行我。

mypath=`pwd`

cd ${mypath}
yum -y localinstall *.rpm


会自动关联软件依赖关系“正在解决依赖关系 …… --> 解决依赖关系完成”:

启动或重启docker

手工启动或重启docker命令:

sudo systemctl status docker  #查看启动状态(安装完默认未启动,需要手动执行启动命令)

# 启动docker
sudo systemctl start docker 
# 重新启动docker
sudo systemctl restart docker
# 重新加载unit配置文件
sudo systemctl daemon-reload

如图:

新安装好的docker很干净,没有镜像或容器:

设置开机启动docker

关于Linux设置开机自启动常用命令:
1,查看已启动的服务
systemctl list-units -type=service

2,查看是否设置开机启动
systemctl list-unit-files | grep enable

3,设置开机启动
systemctl enable docker.service

4,关闭开机启动(需要时操作)
systemctl disable docker.service

设置开机启动 docker服务 如图:

5,查看docker启动状态
systemctl status docker.service
如图:

docker容器设置自动启动

1,启动时加restart-always
docker run -tid -name 容器id -p 端口号 -restart-always -v 挂载

Flag Description

no 不自动重启容器:(默认value)

on-failure 容器发生error而退出(容器退出状态不为0)重启容器

unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

2,如果已经过运行的项目
如果已经启动的项目.则使用update更新:
docker update --restart = always 容器id


posted @ 2022-11-18 09:22  熊仔其人  阅读(3118)  评论(0编辑  收藏  举报