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端口应该已经成功开放。

相关推荐
janthinasnail6 小时前
Docker镜像源加速器
docker·docker镜像源
我爱学习好爱好爱8 小时前
Kubernetes 1.29集群上部署Java网站项目
java·容器·kubernetes
执笔为剑8 小时前
1.2、docker环境部署
运维·docker·容器
开开心心就好8 小时前
小巧绿色免费关机工具,支持定时倒计时
linux·运维·服务器·安全·powerpoint·1024程序员节·foxmail
qhqh3109 小时前
K8S的PV、PVC和storageClass的相关概念及实验
云原生·容器·kubernetes
春日见9 小时前
端到端大模型自动驾驶
java·开发语言·驱动开发·docker·自动驾驶·计算机外设
中国IT10 小时前
第3章:Docker与传统虚拟化比较
运维·docker·容器
luom010211 小时前
使用 Docker 部署 RabbitMQ 的详细指南
docker·容器·rabbitmq
王威振的csdn11 小时前
利用 iptables 实现 IP 透明转发:解决 Docker 容器 IP 无法访问的问题
网络协议·tcp/ip·docker
toradexsh12 小时前
基于 NXP iMX8MP ARM平台安装测试 Openclaw
linux·docker·arm·nxp·openclaw