无网不惧,轻松上手,openEuler系统离线部署Docker全攻略!
在许多企业环境中,网络访问受限或出于安全考虑无法直接连接互联网,这使得在这些环境中安装和部署软件变得更加复杂。为了应对这些挑战,离线部署Docker成为一种实用的解决方案。本文将详细介绍如何在欧拉系统openEuler
上进行Docker
的离线部署,以便在无网络连接的情况下依然能够顺利使用Docker
进行容器化管理。
关于openEuler
openEuler
是一个由华为主导并开源的Linux
发行版,旨在为企业级应用提供高性能、高安全性和高稳定性的操作系统平台。openEuler
是一个由华为主导并开源的Linux发行版,旨在为企业级应用提供高性能、高安全性和高稳定性的操作系统平台。作为一个社区驱动的项目,openEuler
不仅继承了Linux的开放性和灵活性,还集成了多种优化和增强功能,特别是在云计算、大数据、人工智能等领域表现出色。
部署最新Docker版本
本次案例使用的是openEuler 24.03
的版本,如下图所示:
关于openEuler系统的部署请查看官方的文档,有详细的教程文章。
下载Docker二进制离线包
下图展示了Docker官方提供的二进制包下载页面,可以用于进行Docker的离线安装。通过使用这些官方提供的二进制包,即使在无法访问互联网的环境中,依然能够顺利完成Docker的部署。
本案了采用dockr-27.0.3的版本进行部署,通过下面的命令进行下载:
wget https://download.docker.com/linux/static/stable/x86_64/docker-27.0.3.tgz
解压文件
首先,将下载好的Docker二进制安装包拷贝到目标系统上,然后使用tar
命令解压缩这些文件。以下命令展示了如何完成这一步:
tar -zxvf docker-27.0.3.tgz
这条命令会将Docker的二进制文件解压缩到当前目录下,解压后的文件包括Docker守护进程、客户端、以及相关的命令行工具。如下图所示:
把文件复制到/usr/bin/目录下
完成解压缩后,我们需要将这些文件移动到系统的标准可执行文件目录中,以便系统能够正确调用Docker命令:
cp docker/* /usr/bin/
创建Docker服务文件
使用systemd
来管理Docker服务是确保其开机自启动和便捷控制的最佳实践之一。 创建一个名为docker.service
的systemd服务文件。这个文件通常位于/usr/lib/systemd/system/
目录下:
vim /usr/lib/systemd/system/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
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
为了使新的服务文件生效,需要重新加载systemd的配置:
systemctl daemon-reload
启动并启用Docker服务
- 启动Dcoker服务
systemctl start docker
- 检查Docker服务状态,确保其正常运行:
systemctl status docker
允许上述命令后,输入如下图结果:
- 设置Docker服务开机自启动
systemctl enable docker
验证Docker安装
通过以下命令验证Docker是否正确安装和运行:
docker --version
执行完上述命令后,输出如下结果:
通过上述返回的信息看到Docker已经正确安装好了。
运行一个简单的Docker容器,验证Docker是否正常工作 :
docker run -d nginx
运行上述命令出现如下图结果,则说明Docker已成功安装并正常运行。
总结
通过以上步骤,我们实现了在欧拉系统上离线部署Docker。尽管离线环境限制了直接从网络获取软件包的能力,但通过提前准备好所需的安装包和依赖,我们依然可以顺利完成Docker的安装和部署。