0


Docker离线安装

文章目录

在这里插入图片描述

离线安装必要性

Docker 离线安装的必要性主要体现在以下几个方面:

  1. 安全合规性:某些组织或企业的服务器出于安全政策的考虑,不允许连接到互联网。在这种情况下,为了遵守安全规定,需要采用离线安装的方式来部署 Docker。
  2. 网络限制:在一些特定的网络环境中,服务器可能因为网络隔离或限制而无法访问外部网络资源,这就需要通过离线方式来安装所需的软件。
  3. 稳定性和版本控制:在生产环境中,为了确保系统的稳定性,可能需要使用特定版本的 Docker,而这个版本可能不是最新版本。通过离线安装,可以确保安装的 Docker 版本是经过测试和验证的。
  4. 避免潜在风险:在线安装过程中可能会受到网络攻击或恶意软件的威胁,而离线安装可以在一个受控的环境中进行,降低这些风险。

总之,Docker 离线安装提供了一种灵活、安全、可控的部署方式,尤其适用于那些对网络安全性、稳定性和合规性有特殊要求的场景。

分步安装法

  1. 下载 Docker 离线安装包- 在一台可以访问互联网的电脑上,从清华镜像源下载 Docker 的 tar.gz 格式的安装包。wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-24.0.6.tgz
  2. 上传到服务器- 使用文件传输工具(如 WinSCP)将下载的 Docker 安装包上传到目标服务器的/opt/software/ 目录下。
  3. 解压安装包tar-zxvf docker-24.0.6.tgz
  4. 复制文件sudocp ./docker/* /usr/bin
  5. 创建 Docker 服务文件sudocd /etc/systemd/system/sudotouch docker.service
  6. 编辑 Docker 服务文件- 打开 docker.service 文件,例如使用 sudo vim docker.service。- 将以下内容复制到 docker.service 文件中。[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notifyExecStart=/usr/bin/dockerd --selinux-enabled=falseExecReload=/bin/kill -s HUP $MAINPIDLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityTimeoutStartSec=0Delegate=yesKillMode=processRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target
  7. 添加执行权限sudochmod +x docker.service
  8. 加载并启动 Docker 服务sudo systemctl daemon-reloadsudo systemctl start docker
  9. 设置开机自启动sudo systemctl enable docker.service
  10. 验证 Docker 安装sudo systemctl status dockerdocker--version

一键安装法

  1. 创建软件安装目录sudomkdir-p /opt/software/docker
  2. 上传安装软件- 将安装软件上传到/opt/software/docker 目录。
  3. 创建 Docker 服务文件- 在/opt/software/docker目录下创建docker.service 文件, 内容参考分步安装第6步
  4. 编写一键安装脚本- 在 Docker 安装包所在目录下创建 install.sh 脚本文件,并填入以下内容:#!/bin/shecho'解压tar包'tar-xvf$1echo'将docker目录下所有文件复制到/usr/bin目录'cp docker/* /usr/binrm-rf docker/*echo'将docker.service 复制到/etc/systemd/system/目录'cp docker.service /etc/systemd/system/echo'添加文件可执行权限'chmod +x /etc/systemd/system/docker.serviceecho'重新加载配置文件'systemctl daemon-reloadecho'启动docker'systemctl start dockerecho'设置开机自启'systemctl enable docker.serviceecho'docker安装成功'docker--version
  5. 编写一键卸载脚本- 在 Docker 安装包所在目录下/opt/software/docker创建 uninstall.sh 脚本文件,并填入以下内容:#!/bin/bash# 卸载 Docker 脚本# 步骤一:停止 Docker 服务echo"停止 Docker 服务..."sudo systemctl stop docker# 步骤二:删除 Docker 服务echo"移除 Docker 开机自启动..."sudo systemctl disable docker.serviceecho"删除 Docker 服务文件..."sudorm-f /etc/systemd/system/docker.service# 步骤三:删除 Docker 相关命令和文件echo"删除 Docker 相关命令..."sudorm-f /usr/bin/docker*sudorm-f /usr/bin/containerd*sudorm-f /usr/bin/ctrsudorm-f /usr/bin/runcecho"删除 Docker 目录和容器相关文件..."sudorm-rf /var/lib/dockersudorm-rf /var/lib/containerd# 步骤四:验证是否已成功卸载 Dockerecho"验证 Docker 是否已成功卸载..."if!docker--version&> /dev/null;thenecho"Docker 卸载成功。"elseecho"Docker 卸载失败,请检查。"fi
  6. 赋予脚本执行权限chmod +x install.shchmod +x uninstall.sh
  7. 执行安装脚本./install.sh docker-24.0.6.tgz
  8. 验证 Docker 安装sudo systemctl status dockerdocker--version
  9. 卸载Docker安装./uninstall.sh

离线镜像加载

以 Docker 中的 MySQL 5.7 镜像为例,演示镜像离线加载的步骤, 包括从拉取(pull)到保存(save)再到加载(load)的步骤:

  1. 拉取 MySQL 5.7 镜像 在有网络连接的机器上,首先使用 docker pull 命令来下载 MySQL 5.7 镜像。docker pull mysql:5.7
  2. 保存 MySQL 5.7 镜像为 tar 文件下载完成后,使用 docker save 命令将 MySQL 5.7 镜像打包为 tar 文件。docker save -o mysql-5.7.tar mysql:5.7
  3. 传输 tar 文件 将生成的 mysql-5.7.tar 文件传输到目标机器。你可以使用 scp、USB 驱动器或其他文件传输方法。下面以scp为例:scp mysql-5.7.tar username@host:/opt/software/docker- username@host 替换成你的服务器的用户名和IP地址。
  4. 在目标机器上加载 tar 文件为镜像 在目标机器上,使用 docker load 命令来从 tar 文件中加载 MySQL 5.7 镜像。docker load -i mysql-5.7.tar
  5. 验证镜像是否加载成功 使用 docker images 命令来检查 MySQL 5.7 镜像是否已经成功加载到本地镜像库中。docker images你应该能够在列出的镜像中看到 mysql:5.7
  6. 运行 MySQL 5.7 容器如果你想要在 Docker 中运行 MySQL 5.7,可以使用以下命令:docker run --name mysql -eMYSQL_ROOT_PASSWORD=123456-d mysql:5.7这里,mysql 是你给容器指定的名称,123456 是你设置的 MySQL root 用户的密码,-d 表示以 detached 模式运行容器。

注意事项

  • 确保在执行这些步骤之前,你有足够的权限(可能需要 sudo)来执行这些命令,并且服务器的防火墙设置允许 Docker 服务的正常运行。

参考文章

Docker】Docker学习之一:离线安装Docker步骤
Docker安装包下载

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/weixin_44585288/article/details/140106366
版权归原作者 weixin_44585288 所有, 如有侵权,请联系我们删除。

“Docker离线安装”的评论:

还没有评论