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 的依赖库 newuidmap
和 newgidmap
。
由于这是一个离线安装,你可能需要在有网络的环境中找到相应的 deb
或 rpm
文件,下载后通过用户权限进行安装。
安装完成后,运行以下命令配置 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
的情况
- Docker安装gitlab 运行一段时间后报500/502_docker gitlab 502-CSDN博客
- 关于gitlab通过docker启动后,间歇性报500及502的问题_docker gitlab 502-CSDN博客
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端口应该已经成功开放。