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

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博客

猜你喜欢

转载自blog.csdn.net/chexlong/article/details/127932711