linux系统离线安装docker(分步法&一键法)

本文介绍在无法连接外网的服务器上通过离线方式安装Docker的方法,包括分步安装和一键安装两种方案,并提供了详细的步骤说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1  前言

在有的项目场景中,服务器是不允许连接外网的。此时若想在服务器上安装部署docker容器,就不能采用在线方式了,不过可以采取离线方式进行安装。下面我们就一起看看离线安装的两种办法。

一种是分步安装法,一种是一键安装法。

2 安装准备

首先在另一台可外网的电脑上,下载docker离线安装包。下载地址如下:

Index of linux/static/stable/x86_64/

这里我们选择稳定的社区版docker-18.06.3-ce.tgz。

下载好后,将文件docker-18.06.3-ce.tgz用WinSCP等工具,上传到不能外网的linux系统服务器上,这里用Centos7.9系统作为示例。

3 分步安装法

3.1 解压

tar -zxvf docker-18.06.3-ce.tgz

解压后的文件夹docker中文件如下所示:

3.2 复制文件

将docker中的全部文件,使用下边命令,复制到/usr/bin

cp ./docker/* /usr/bin

3.3 创建docker.service文件

cd /etc/systemd/system/
touch docker.service

3.4 编辑docker.service文件

首先打开docker.service

vim docker.service

然后将下边内容复制到docker.service。

注意,将其中的ip地址,改成您的服务器地址,其它参数不用改。

--insecure-registry=192.168.205.230

[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 --selinux-enabled=false --insecure-registry=192.168.205.230
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

 编辑好后,ESC键à:wq保存并退出docker.service文件。

3.5 添加可执行权限

chmod +x docker.service

3.6 加载docker.service

systemctl daemon-reload

注意,若修改了docker.service文件,则要重新加载该文件。

3.7 启动docker

systemctl start docker

3.8查看docker

systemctl status docker

docker -v

 

3.9 设置开机自启动

systemctl enable docker.service

这样每次系统启动时,docker就自动随机启动了。

4 一键安装法

如果您觉得上边的步骤繁琐,也可以用下边的办法,一键安装docker。

4.1 制作docker.service文件

在docker-18.06.3-ce.tgz同目录下,创建docker.service,打开编辑文件,文件内容与3.4节完全一样,此处不再赘述。

4.2 制作一键安装脚本

touch install.sh

打开编辑install.sh,将以下内容复制到install.sh,保存退出。

#!/bin/sh

echo '解压tar包'
tar -xvf $1
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.3 制作一键卸载脚本

Touch uninstall.sh,将以下内容复制到uninstall.sh,保存退出。

#!/bin/sh

echo '停止docker'
systemctl stop docker
echo '删除docker.service'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功'

4.4 安装docker

此时docker-18.06.3-ce.tgz同目录下,还有上边创建的docker.service,install.sh,uninstall.sh这3个文件:

分别给install.sh和uninstall.sh赋予可执行权限。

chmod +x install.sh
chmod +x uninstall.sh

 开始安装

sh install.sh docker-18.06.3-ce.tgz

查看docker状态

5 总结

一键安装法,其实是将分步安装法的步骤,集中写到一个shell脚本,其过程实质上是一样的,优点就是在一台新的机器上安装时,能节约时间,也不容易出错。如果想卸载docker,一键操作也很方便。

6 参考

centos7-linux安装docker(离线方式) - 青阳闲云 - 博客园

Linux 离线安装docker的过程(一键式安装)_黑科技王子的博客-CSDN博客

### Linux系统上的Docker离线安装 对于Linux系统Docker离线安装,可以采用分步法或通过编写并运行一个shell脚本来实现自动化的一键安装过程[^3]。 #### 准备工作 首先,在一台联网机器上下载适用于目标架构的Docker二进制文件。可以从官方提供的静态链接页面获取所需的`docker.tgz`压缩包[^1]: ```bash wget https://download.docker.com/linux/static/stable/x86_64/docker-<version>.tgz ``` 接着将此`.tgz`文件传输至待安装Docker的目标主机。 #### 安装流程 创建名为`install.sh`的新Shell脚本,并向其中加入以下指令来完成Docker离线安装操作: ```sh #!/bin/sh echo '解压tar包' tar -xvf $1 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 ``` 上述脚本中的参数 `$1` 应替换为实际上传输过来的那个 Docker 压缩包名称。之后赋予该脚本执行权限并通过命令行调用它来进行安装: ```bash chmod +x install.sh ./install.sh docker-<version>.tgz ``` 这会依次执行一系列必要的动作——从解压存档、拷贝必要组件到最后激活服务,从而确保整个环境搭建顺利完成。 ### 部署项目 一旦完成了Docker本身的离线安装,则可以根据具体需求拉取所需镜像以及构建容器化应用。由于是在无网络连接的情况下作业,所以提前准备好所有的依赖项至关重要;比如预先打包好应用程序及其关联资源(如数据库初始化SQL脚本),并将它们一同迁移到目的服务器上去。 如果事先已知要使用的镜像列表,可以在另一台能够上网的工作站里把这些镜像导出成 `.tar` 文件形式再传送到目标节点导入即可。例如: ```bash # 在有互联网访问的地方先保存镜像 docker save -o myapp_image.tar myapp:latest # 将myapp_image.tar移动到目标机器后恢复镜像 docker load -i myapp_image.tar ``` 最后一步就是按照常规方式启动容器实例了,假设已经有了定义好的 `docker-compose.yml` 或者简单的 `run` 命令字符串的话就更加方便快捷了。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉古云投

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值