CentOS7.8离线安装Docker24.0.2,离线安装gcc与g++环境

news2024/12/27 1:41:46

背景

有时候运维时要求在内网环境下操作,即服务器无法连接互联网,那么就无法通过 yum 源在线安装。。这时,一般通过以下3种方式来安装需要的软件:

  1. 下载源码包编译安装;
  2. 下载对应平台编译好的安装包,解压即可;
  3. 下载rpm包,本地安装。

Docker

系统环境

[root@etl opt]# uname -a
Linux etl 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@etl opt]# cat /proc/version
Linux version 3.10.0-1127.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 31 23:36:51 UTC 2020
[root@etl opt]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

下载安装包

下载对应平台编译好的安装包,解压即可。

下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-24.0.2.tgz

安装Docker

# 解压
[root@etl opt]# tar -xvf docker-24.0.2.tgz 
docker/
docker/docker-proxy
docker/containerd-shim-runc-v2
docker/ctr
docker/docker
docker/docker-init
docker/runc
docker/dockerd
docker/containerd

[root@etl opt]# cp docker/* /usr/bin/

确认安装

查看 Docker 版本,确认已安装。

[root@etl opt]# docker info
Client:
 Version:    24.0.2
 Context:    default
 Debug Mode: false

Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info

[root@etl opt]# docker version
Client:
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:50:49 2023
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

配置Docker开机自启

编写服务脚本,用于管理 Docker 服务,并配置 Docker 开机自启。

[root@etl opt]# vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

常用的管理命令

包括启动、查看状态、停止、重启命令。启动之后就可以拉取镜像、运行容器啦。

[root@etl opt]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://docs.docker.com

619 04:25:55 etl systemd[1]: [/etc/systemd/system/docker.service:34] Invalid section header '[root@SXCTC-TYMH local]# sy... docker'
Hint: Some lines were ellipsized, use -l to show in full.

[root@etl opt]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.

[root@etl opt]# systemctl list-unit-files | grep docker
docker.service                                enabled 

[root@etl opt]# systemctl start docker

[root@etl opt]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2023-06-19 04:27:52 EDT; 4s ago
     Docs: https://docs.docker.com
619 04:27:52 etl systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

[root@etl opt]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

[root@etl opt]# docker info
Client:
 Version:    24.0.2
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 24.0.2
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 1677a17964311325ed1c31e2c0a3589ce6d5c30d
 runc version: v1.1.7-0-g860f061
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 3.10.0-1127.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.682GiB
 Name: etl
 ID: 0eee62aa-0908-4f69-a442-6333e558b82b
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

gcc与g++

[root@etl opt]# gcc -v
-bash: gcc: 未找到命令

[root@etl opt]# g++ -v
-bash: g++: 未找到命令

在离线环境下,如果需要进行源码编译安装,比如 NginxRedis 等,则要求具备 gccg++ 这些基础环境。以下通过 rpm 包进行 gccg++ 的离线安装。

gccg++rpm 包下载链接: https://pan.baidu.com/s/1I4kn_vF9KX0dZF9cr4JFnw?pwd=ruks 提取码: ruks

gcc

进入 /opt/gcc 目录,执行以下命令安装 gcc

rpm -ivh *.rpm --nodeps --force

其中 --nodeps 表示忽略依赖检查, --force 表示强制安装。

[root@etl gcc]# rpm -ivh *.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:glibc-common-2.17-105.el7        ################################# [ 11%]
   2:glibc-2.17-105.el7               警告:/etc/nsswitch.conf 已建立为 /etc/nsswitch.conf.rpmnew 

################################# [ 22%]

   3:mpfr-3.1.1-4.el7                 ################################# [ 33%]
   4:libmpc-1.0.1-3.el7               ################################# [ 44%]
   5:cpp-4.8.5-4.el7                  ################################# [ 56%]
   6:kernel-headers-3.10.0-327.el7    ################################# [ 67%]
   7:glibc-headers-2.17-105.el7       ################################# [ 78%]
   8:glibc-devel-2.17-105.el7         ################################# [ 89%]
   9:gcc-4.8.5-4.el7                  ################################# [100%]

# 查看版本,确认已安装
[root@etl gcc]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 

g++

进入 /opt/g++ 目录,执行以下命令安装 g++

rpm -ivh *.rpm --nodeps --force

其中 --nodeps 表示忽略依赖检查, --force 表示强制安装。

[root@etl g++]# rpm -ivh *.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:libstdc++-devel-4.8.5-4.el7      ################################# [ 50%]
   2:gcc-c++-4.8.5-4.el7              ################################# [100%]

# 查看版本,确认已安装
[root@etl g++]# g++ -v
使用内建 specs。
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 

Reference

  • https://www.cnblogs.com/dandelion200/p/14577480.html

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解JVM

PS:本文以下部分,默认都是使用HotSpot,也就是Oracle Java 默认的虚拟机为前提来进行介绍的。 1.JVM执行流程 程序在执行之前先要把Java代码转换成字节码(.class文件),JVM首先需要把字节码通过一定的方式类加载器(Clas…

python调用oepnai API

目录 apiAI官网介绍([Introduction](https://platform.openai.com/docs/api-reference/introduction))安装官方SDK认证(Authentication)申请API KEY请求组织(Requesting organization) 发送请求关于chat to…

CAJ文献如何转成PDF?分享两个免费的方法!

CAJ格式是中国知网(CNKI)常见的电子文献格式,但有时我们可能更倾向于将其转换为PDF格式以便于查阅、存储和共享。为了帮助大家完成这个任务,下面将分享两种免费的方法来将CAJ文献转换为PDF格式。无论您是研究学者、学生还是对特定…

学校招生报名小程序开发笔记(一)

背景 这是一个以报名为核心的职业学校招生小程序,目的是方便想要系统学习技能,入门某项技能或者领域的初高中毕业生,了解该学校的基本情况及各个专业,并提供报名路径,致力于技能型人才培养 功能规划 主要功能包括专…

使用 Pytest 运行 yaml 文件来驱动 Appium 自动化测试

目录 前言: 获取 yaml 文件 YamlTest 测试类 Appium 初始化 Pytest 测试类 自定义 runtest demo: 自定义错误输出 Yaml 使用方式规则 前言: 使用Pytest来运行yaml文件来驱动Appium自动化测试是一种方便且灵活的方法。通过将测试数据…

【异常解决】postman请求提示Full authentication is required to access this resource

Full authentication is required to access this resource解决办法 报错问题:在使用 postman 测试接口时,该接口需要在 Header 中传入 access_token,实际上也在请求的 Header 中添加上了 access_token 参数,但是服务端还是返回4…

【STM32零基础入门教程01】STM32入门基础知识

本篇内容为STM32零基础入门教程的第一篇,网上STM32的教程很多,有些初学者还是望而却步。其实STM32并不难,只是一个新的事物出现在我们面前一时间不适应,思来想去我打算写点东西一方面自己有点知识的积累,另一方面希望可…

Python教程(4)——Python开发工具PyCharm的下载与安装

PyCharm是一种专业的Python集成开发环境(IDE),由JetBrains公司开发和维护。它提供了丰富的功能和工具,帮助开发人员更高效地编写、调试和测试Python代码。如果是一些大型Python项目强烈推荐用这个来开发。今天我们来介绍一下PyCha…

【实战】 七、Hook,路由,与 URL 状态管理(中) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(十二)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

Docker基础(二)

1、Docker工作原理 Docker是一个Clinet-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说的…

论文笔记:Deep Spatio-Temporal Residual Networks for Citywide Crowd FlowsPrediction

2017 AAAI 使用时空残差网络ST-ResNet 进行 城市区域流入流出客流量预测 1 研究对象 城市客流流入流出 根据经纬度将城市划分为网格 IJ 1.1 难点 空间依赖性 时间依赖性 外部影响 2 模型 3 实验 北京出租车数据纽约自行车数据 评价指标:RMSE

Java List中通过对象属性排序,可实现多条件排序

直接上代码: import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Data;import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;/*** List 对象属性排序*/Data AllArgsConstructor clas…

[java安全]动态代理

文章目录 【java安全】动态代理前言本质重要方法Proxy#newProxyInstance()InvocationHandler#invoke() 举例 【java安全】动态代理 前言 java中代理分为两种:静态代理、动态代理 而动态代理又分为:jdk动态代理、CGLIB动态代理 本文我们来谈谈jdk动态代…

Iceberg从入门到精通系列之十七:Apache InLong往Iceberg同步数据

Iceberg从入门到精通系列之十七:Apache InLong往Iceberg同步数据 一、概览二、版本支持三、依赖项四、SQL API 用法五、多表写入六、动态表名映射七、动态建库、建表八、动态schema变更九、Iceberg Load 节点参数十、数据类型映射 一、概览 Apache Iceberg是一种用…

【机器学习算法】主成分分析(PCA)

主成分分析(PCA) PCA(Principal Component Analysis) 是实现数据降维的一种算法。正如其名,假设有一份数据集,每条数据的维度是d,PCA通过分析这d个维度的前k个主要特征(这k个维度在原有d维特征的基础上重新构造出来,且是全新的正交…

SpringBoot+React学科竞赛管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootReact框架开发的学科竞赛管理系统。首先,这是一个前后端分离的项目,代码简洁…

初学者怎么学习c++(合集)

学习c方法1 找一本好的书本教材,辅助看教学视频。好的教材,可以让你更快更好的进入C/C的世界。在校学生的话,你们的教材通常都是不错的。如果是自学,推荐使用谭浩强出的C/C经典入门教材。看视频是学习比较直观的方式。建议先看课本…

从零开始理解Linux中断架构(20)--关于二级中断控制-链式chained Handler

二级中断控制器是个双重角色,在上级中断控制器看来他是个中断设备,在连接到他的下级设备来看,他是个中断控制器。所以处理完成基本的中断控制器管理功能:映射本地中断,还要多个动作:修改上级中断的默认irq Handler,向上级中断设置自己的链式中断处理函数。 中断控制的层…

Springboot实现过滤器

一、导言 在Spring Boot中,过滤器是一种用于对HTTP请求进行预处理和后处理的组件。相较于拦截器,过滤器属于Servlet规范的一部分,它能够在请求进入Web容器之前或返回给客户端之前进行操作。 要在Spring Boot中实现过滤器,可以按…

指针进阶(万字深层次指针解析)

❤️ 作者简介 :对纯音乐情有独钟的阿甘 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识,对纯音乐有独特的喜爱 📗 日后方向 : 偏向于CPP开发以及大数据方向,如果你也感兴趣的话欢迎关注博主,期待更新 指针进阶 …