• 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文件

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

    3.4 编辑docker.service文件

    首先打开docker.service

    vim docker.service

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

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

    --insecure-registry=192.168.205.230

    1. [Unit]
    2. Description=Docker Application Container Engine
    3. Documentation=https://docs.docker.com
    4. After=network-online.target firewalld.service
    5. Wants=network-online.target
    6. [Service]
    7. Type=notify
    8. # the default is not to use systemd for cgroups because the delegate issues still
    9. # exists and systemd currently does not support the cgroup feature set required
    10. # for containers run by docker
    11. ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.205.230
    12. ExecReload=/bin/kill -s HUP $MAINPID
    13. # Having non-zero Limit*s causes performance problems due to accounting overhead
    14. # in the kernel. We recommend using cgroups to do container-local accounting.
    15. LimitNOFILE=infinity
    16. LimitNPROC=infinity
    17. LimitCORE=infinity
    18. # Uncomment TasksMax if your systemd version supports it.
    19. # Only systemd 226 and above support this version.
    20. #TasksMax=infinity
    21. TimeoutStartSec=0
    22. # set delegate yes so that systemd does not reset the cgroups of docker containers
    23. Delegate=yes
    24. # kill only the docker process, not all processes in the cgroup
    25. KillMode=process
    26. # restart the docker process if it exits prematurely
    27. Restart=on-failure
    28. StartLimitBurst=3
    29. StartLimitInterval=60s
    30. [Install]
    31. 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,保存退出。

    1. #!/bin/sh
    2. echo '解压tar包'
    3. tar -xvf $1
    4. echo '将docker目录下所有文件复制到/usr/bin目录'
    5. cp docker/* /usr/bin
    6. echo '将docker.service 复制到/etc/systemd/system/目录'
    7. cp docker.service /etc/systemd/system/
    8. echo '添加文件可执行权限'
    9. chmod +x /etc/systemd/system/docker.service
    10. echo '重新加载配置文件'
    11. systemctl daemon-reload
    12. echo '启动docker'
    13. systemctl start docker
    14. echo '设置开机自启'
    15. systemctl enable docker.service
    16. echo 'docker安装成功'
    17. docker -v

    4.3 制作一键卸载脚本

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

    1. #!/bin/sh
    2. echo '停止docker'
    3. systemctl stop docker
    4. echo '删除docker.service'
    5. rm -f /etc/systemd/system/docker.service
    6. echo '删除docker文件'
    7. rm -rf /usr/bin/docker*
    8. echo '重新加载配置文件'
    9. systemctl daemon-reload
    10. echo '卸载成功'

    4.4 安装docker

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

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

    1. chmod +x install.sh
    2. chmod +x uninstall.sh

     开始安装

    sh install.sh docker-18.06.3-ce.tgz

    查看docker状态

    5 总结

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

    6 参考

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

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

  • 相关阅读:
    河南萌新联赛2024第(四)场:河南理工大学
    Typora+PicGo+Github+CSDN梦幻联动
    深入解读:从DDIM到Improved Denoising Diffusion Probabilistic Models
    SpringCloud (四) ——Nacos配置管理
    Node.js | 使用 zlib 内置模块进行 gzip 压缩
    MATLAB环境下使用相关图可视化相关矩阵
    【Ubuntu】解决The repository xxx no longer has a Release file
    cURL作者狂怼某500强公司,开源维护者是否应当“白打工”?
    520表白小程序设计Python代码详解(PyQt5界面,B站动漫风)
    详解:取地址操作符(&)及解引用操作符(*)
  • 原文地址:https://blog.csdn.net/chexlong/article/details/127932711