在内网Linux系统离线安装Docker和Uptime Kuma服务监控系统
在政企单位生产环境中,服务器往往处于内网隔离状态,无法直接访问互联网。这种环境下,离线安装Docker非常有必要。最近在内网的Debian Linux下离线部署Uptime Kuma服务器监测工具,代码运行环境依赖较多,Docker安装便捷一些。本文将详细介绍Linux系统下离线安装Docker的完整流程,涵盖准备工作、安装步骤、常见问题及优化配置。
离线安装Docker
下载安装包
1.离线安装包下载地址:https://download.docker.com/linux/static/stable/
Intel系列处理器下载x86_64/docker-29.8.1.tgz压缩包。
2.准备安装文件
创建 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
此文件和有些旧版本不兼容。
3.创建安装脚本
创建install.sh 脚本文件,内容如下:
#!/bin/sh
echo '解压tar包......'
tar -xvf $1 --overwrite
echo '将docker目录移到/usr/bin目录下.....'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录.....'
cp docker.service /etc/systemd/system/
echo '添加文件权限.....'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件.....'
systemctl daemon-reload
echo '启动docker.....'
systemctl start docker
echo '设置开机自启.....'
systemctl enable docker.service
echo 'docker安装成功.....'
docker -v
4.创建卸载脚本
创建uninstall.sh 脚本文件,内容如下:
#!/bin/sh
echo '删除docker.service......'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件......'
# 删除 docker
sudo rm -rf /usr/bin/docker*
# 删除 containerd
sudo rm -rf /usr/bin/containerd*
# 删除 docker 运行时 ID
sudo rm -rf /var/run/docker*
# 卸载 docker-compose
sudo rm -rf /usr/local/bin/docker-compose
sudo rm -rf /var/lib/docker*
sudo rm -rf /var/lib/containerd*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
5.将docker-29.8.1.tgz、docker.service、install.sh、uninstall.sh四个文件放在同一目录内,复制到U盘。
离线安装
1.使用MobaXterm上传以上收集的Docker相关文件到内网服务器上。
2.给脚本赋权限
sudo chmod +x install.sh uninstall.sh
执行部署脚本install.sh,使用root权限执行
sudo ./install.sh docker-28.4.0.tgz
出现如下信息则代表成功。
如果不想用脚本安装,或者出现异常情况,也可以逐条执行脚本中的命令进行安装。
安装Uptime Kuma
从互联网Linux机器上拔取Uptime Kuma镜像tar文件,使用以下命令将镜像保存为tar文件。
sudo docker pull louislam/uptime-kuma:2
sudo docker save louislam/uptime-kuma > louislam-uptime-kuma.tar
执行完之后会有一个louislam-uptime-kuma.tar文件,将此文件通过U盘复制安装了docker的服务器上,使用以下命令加载镜像
sudo docker load < louislam-uptime-kuma.tar
加载完之后就可以使用以下命令查看到镜像了。
sudo docker images
使用以下命令启动容器服务
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
启动成功,就可以通过网页打开http://[IP]:3001访问并设置系统了。
到此,离线安装docker并配置程序成功。
配置Docker用户组
Docker 利用 Linux 的用户和组权限来管理对 Docker 守护进程的访问权限。一般情况下,只有 root 用户和属于 docker 用户组的用户才被允许访问 Docker 守护进程。在 Linux 系统上使用 Docker 时,如果尚未配置 docker 用户组,那么作为非 root 用户执行 Docker 相关命令将要求使用 sudo 来提升权限。
默认情况下,Docker 在安装过程中会创建一个名为 docker 的用户组,用于管理 Docker 容器。
可以使用以下命令来查看是否存在 docker 用户组:
getent group docker
如果不存在,则使用以下命令创建docker用户组
sudo groupadd docker
将用户添加到 Docker 用户组
sudo usermod -aG docker your_username
或者
sudo gpasswd -a your_username docker
为了使更改生效,使用以下命令更新用户组。
newgrp docker
docker-compose安装
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile很容易定义一个单独的应用容器。在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。
从github上下载docker-compose二进制文件
下载最新版的docker-compose文件。
官方文档地址:https://docs.docker.com/compose/install/
下载地址:https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64
得到到执行文件夹,并添加可执行权限。
cd /usr/local/bin/
sudo mv docker-compose-linux-x86_64 docker-compose
sudo chmod +x docker-compose
测试安装结果
docker-compose --version
Docker Compose version v2.5.0
结语
离线安装Docker虽比在线安装复杂,掌握正确的方法后,此工具可大大提高在内网环境部署工具软件的效率。做好前期规划,掌握依赖包关联和完整性,建立完善的镜像管理机制。实践是最好的老师,建议先在测试环境多次演练,熟练掌握后再在生产环境部署,达到事半功倍。