241023-RHEL非管理员安装Docker并开放指定宿主机端口部署Gitlab

A. RHEL非管理员安装Docker

要在没有管理员权限的情况下离线安装 Docker 和 Docker Compose,虽然受到一定限制,仍有一些可行的步骤可以帮助你在有限权限下完成这项任务。需要注意的是,这种方式适用于本地用户环境下的 Docker 安装,而不会影响到全局系统设置。以下是详细步骤:

步骤 1:准备离线安装文件

你可以在有网络连接的机器上下载需要的 Docker 和 Docker Compose 可执行文件,并将它们传输到目标机器。

1.1. 下载 Docker 二进制文件

Docker 的二进制文件可以直接从 Docker 官方网站下载:

选择适合你系统架构的 Docker 二进制文件(一般为 docker-<version>.tgz),然后解压到一个本地目录。

示例命令(在有网络的环境中):

bash 复制代码
wget https://download.docker.com/linux/static/stable/x86_64/docker-<version>.tgz
tar xzvf docker-<version>.tgz
1.2. 下载 Docker Compose 二进制文件

同样,你也可以下载 Docker Compose 的二进制文件:

选择你所需的 Docker Compose 版本(.zip.tar.gz 文件),并将其下载解压。

步骤 2:配置 Docker 和 Docker Compose

将解压后的 Docker 和 Docker Compose 二进制文件放置在你有权限的目录下(例如用户的 home 目录中)。

2.1. 安装 Docker

将解压后的 docker 二进制文件放置在你本地目录下,设置执行权限:

bash 复制代码
# 移动到你有权限的路径,例如 $HOME/docker/
mv docker/* ~/docker/

# 给所有二进制文件赋予可执行权限
chmod +x ~/docker/*

你可以将 docker 目录添加到 PATH 环境变量中,方便后续调用 Docker 命令。

bash 复制代码
echo 'export PATH=$PATH:$HOME/docker' >> ~/.bashrc
source ~/.bashrc
2.2. 安装 Docker Compose

下载的 Docker Compose 文件同样需要放置在一个可执行的目录中:

bash 复制代码
mv docker-compose-<version> ~/docker/docker-compose
chmod +x ~/docker/docker-compose

将 Docker Compose 的路径也添加到 PATH 中:

bash 复制代码
echo 'export PATH=$PATH:$HOME/docker' >> ~/.bashrc
source ~/.bashrc

步骤 3:启动 Docker(无 root 权限)

如果没有管理员权限启动 Docker 服务,使用者可以通过 rootless 模式运行 Docker。

3.1. 安装 rootless Docker

首先,下载并安装 rootless Docker 的依赖库 newuidmapnewgidmap

由于这是一个离线安装,你可能需要在有网络的环境中找到相应的 debrpm 文件,下载后通过用户权限进行安装。

安装完成后,运行以下命令配置 Docker rootless 模式:

bash 复制代码
./dockerd-rootless-setuptool.sh install

此处会报错:

bash 复制代码
[liuguokai@PPSE1LLM163 docker]$ ./dockerd-rootless-setuptool.sh install
[ERROR] Missing system requirements. Run the following commands to
[ERROR] install the requirements and run this tool again.
[ERROR] Alternatively iptables checks can be disabled with --skip-iptables .
########## BEGIN ##########
sudo sh -eux <<EOF
Load ip_tables module
modprobe ip_tables
EOF
########## END ##########
  • 解决方法1:联系管理员身先执行下面代码,再重复执行
bash 复制代码
sudo modprobe ip_tables
bash 复制代码
./dockerd-rootless-setuptool.sh install
  • 解决方法2: 直接执行
bash 复制代码
./dockerd-rootless-setuptool.sh install --skip-iptables

此脚本会为 Docker 创建一个 rootless 用户守护进程,并允许你在非管理员权限下运行 Docker 容器。

步骤 4:验证安装

完成上述步骤后,重新启动终端会话或手动加载环境变量,然后运行以下命令以确认 Docker 和 Docker Compose 是否安装成功:

bash 复制代码
docker --version
docker-compose --version

如果这些命令返回相应的版本信息,说明 Docker 和 Docker Compose 已成功安装并可用。

结论

通过上述方式,可以在没有管理员权限的环境下离线安装 Docker 和 Docker Compose。重点是下载必要的二进制文件并利用 Docker 的 rootless 模式来启动 Docker 容器。

B. 如何Pull镜像 + 如何安装Gitlab

B.1 下载离线的Docker镜像文件

B.2 通过Docker搭建Gitlab服务

bash 复制代码
# 启动容器
docker run \
 -itd  \
 -p 5004:80 \
 -p 5005:22 \
 -v /home/liuguokai/docker/data/gitlab/etc:/etc/gitlab  \
 -v /home/liuguokai/docker/data/gitlab/log:/var/log/gitlab \
 -v /home/liuguokai/docker/data/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 --shm-size 1g \ 
 gitlab/gitlab-ce

新增--shm-size 1g \是为了解决网页卡顿出现500/502的情况

C. 开放9980端口的步骤

在RHEL系统中开放9980端口,可以按照以下步骤进行操作:

1. 确保firewalld服务已启动

首先检查并启动firewalld服务:

bash 复制代码
sudo systemctl status firewalld

如果服务未运行,可以启动它:

bash 复制代码
sudo systemctl start firewalld

2. 添加防火墙规则以开放9980端口

使用以下命令开放9980端口:

bash 复制代码
sudo firewall-cmd --permanent --add-port=9980/tcp

3. 重新加载防火墙规则

应用更改后,重新加载防火墙配置:

bash 复制代码
sudo firewall-cmd --reload

4. 确认端口是否开放

验证端口是否成功开放:

bash 复制代码
sudo firewall-cmd --list-ports

这将显示所有已开放的端口,检查是否包括9980端口。

5. 检查服务绑定端口

确保你要使用的服务绑定了9980端口,可以用以下命令检查:

bash 复制代码
sudo ss -tuln | grep 9980

如果这些步骤没有问题,9980端口应该已经成功开放。

相关推荐
20岁30年经验的码农11 分钟前
爬虫基础
1024程序员节
licy__30 分钟前
计算机网络IP地址分类,子网掩码,子网划分复习资料
1024程序员节
Chris-zz1 小时前
Linux:磁盘深潜:探索文件系统、连接之道与库的奥秘
linux·网络·c++·1024程序员节
云围1 小时前
Soanrquber集成Gitlab 之 导入Gitlab项目
运维·ci/cd·gitlab·devops
云围1 小时前
Soanrquber集成Gitlab 之 gitlab用户配置和身份验证
ci/cd·gitlab·github·devops
JasonYin~1 小时前
《探索 HarmonyOS NEXT(5.0):开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》
1024程序员节
极小狐1 小时前
极狐GitLab 签约新大陆自动识别,以质量和安全让智能识别更精准
gitlab·devsecops·devops·极狐gitlab·安全合规
Teamol20202 小时前
求助帖:ubuntu22.10 auto install user-data配置了为何还需要选择语言键盘(如何全自动)
linux·ubuntu·1024程序员节
尘佑不尘2 小时前
shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
数据库·笔记·mongodb·web安全·jenkins·1024程序员节