无网络的情况下安装docker以及运行程序

第一步你需要去docker官网下载docker文件,下载完成后上传到服务器进行解压

https://download.docker.com/linux/static/stable

解压文件

tar -xzvf docker-*.tgz

将解压出的 docker 目录下的所有文件复制到 /usr/bin 目录,这样系统就能直接调用 docker 命令

cp docker/* /usr/bin/

然后可以把原来的docker给删除了

rm -r docker
rm -r docker-*.tgz

使用文本编辑器创建 /etc/systemd/system/docker.service 文件

vi /etc/systemd/system/docker.service

将以下内容完整地粘贴到文件中。这是Docker官方推荐的、最通用的服务配置

复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500

[Install]
WantedBy=multi-user.target

文件保存后,按顺序执行以下命令

复制代码
# 1. 让 systemd 重新读取所有服务配置文件,使新创建的 docker.service 生效
systemctl daemon-reload

# 2. 立即启动 Docker 服务
systemctl start docker

# 3. 设置 Docker 服务在系统启动时自动运行
systemctl enable docker

上面步骤已经安装完docker了 然后就是镜像问题了 你先去找一台有网络的服务器 把镜像下载下来 我这里以 redis mysql nginx jre 四个镜像为例子

docker pull eclipse-temurin:21-jre
docker pull mysql:9.7
docker pull redis:8.2.7
docker pull nginx:1.30.2

镜像下载下来以后 需要执行命令把这些镜像打成包 然后下载到你自己电脑上

docker save -o mysql-9.7.tar mysql:9.7
docker save -o jre-21.tar eclipse-temurin:21-jre
docker save -o nginx-1302.tar nginx:1.30.2
docker save -o redis-827.tar redis:8.2.7

最后一步 你需要把mysql-9.7.tar jre-21.tar nginx-1302.tar redis-827.tar 这些包上传到你没有网络的服务器上 然后执行命令安装镜像

docker load -i mysql-9.7.tar
docker load -i jre-21.tar
docker load -i nginx-1302.tar
docker load -i redis-827.tar

上面的做完后你可以把这些文件都删了

rm -rf jre-21.tar mysql-9.7.tar nginx-1302.tar redis-827.tar

最后一步下载docker-compose工具

https://github.com/docker/compose/releases

docker-compose下载完成后 上传到你没有网络的服务器,设置存放目录并设置执行权限

mv /tmp/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

验证是否安装成功

docker-compose --version