Centos7 离线安装docker

Posted 凌飞安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 离线安装docker相关的知识,希望对你有一定的参考价值。

Centos 离线安装docker

因为服务器无法直连外网,有时候docker必须进行离线安装,本次文章记录的是我离线安装过程的操作步骤,仅供参考,不同的环境命令可能会有差异。

环境检查

  1. 内核
    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
    使用命令 uname -r 查看centos内核
[root@LHLNXNS10 system]# uname -r
3.10.0-1160.el7.x86_64
  1. centos版本信息
    通过命令cat /etc/redhat-release可以查看版本信息
[root@LHLNXNS10 system]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

确认服务环境满足要求之后,我们开始docker安装

资源下载

官方资源下载路径 下载资源包

在这里我选在下载的版本是:docker-20.10.9.tgz (没有特别要求,默认选了最新版的毛病)

资源包下载后通过WinScp工具上传到 centos服务器。

开始安装

  1. 通过命令tar -zxvf ./docker-20.10.9.tgz解压上传好的安装包
  2. 通过命令cp docker/* /usr/bin/将解压得到的文件复制到 /usr/bin目录下
  3. 在 /etc/systemd/system 目录下创建一个docker.service文件,用于注册docker服务和开机启动
    使用命令 vi /etc/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 --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
  1. 给service文件设置权限 chmod 777 /etc/systemd/system/docker.service
  2. 使用命令 systemctl daemon-reload 重新加载配置
  3. 设置docker为开机启动 systemctl enable docker.service
  4. 启动 docker 命令 systemctl start docker
  5. 查看容器状态 systemctl status docker
[root@LHLNXNS10 system]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-06-27 11:54:47 CST; 2h 13min ago
     Docs: https://docs.docker.com
 Main PID: 31137 (dockerd)
    Tasks: 51
   Memory: 25.2M
   CGroup: /system.slice/docker.service
           ├─31137 /usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
           └─31167 containerd --config /var/run/docker/containerd/containerd.toml --log-level info

Jun 27 11:54:45 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:45.609986010+08:00" level=info msg="ccResolverWrapper: sending update to cc: [unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>] <nil> <nil>" module=grpc
Jun 27 11:54:45 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:45.610023072+08:00" level=info msg="ClientConn switching balancer to \\"pick_first\\"" module=grpc
Jun 27 11:54:45 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:45.741669951+08:00" level=info msg="Loading containers: start."
Jun 27 11:54:47 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:47.260541389+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Jun 27 11:54:47 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:47.435080759+08:00" level=info msg="Firewalld: interface docker0 already part of docker zone, returning"
Jun 27 11:54:47 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:47.596933690+08:00" level=info msg="Loading containers: done."
Jun 27 11:54:47 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:47.633966421+08:00" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Jun 27 11:54:47 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:47.634328720+08:00" level=info msg="Daemon has completed initialization"
Jun 27 11:54:47 LHLNXNS10 systemd[1]: Started Docker Application Container Engine.
Jun 27 11:54:47 LHLNXNS10 dockerd[31137]: time="2022-06-27T11:54:47.686162748+08:00" level=info msg="API listen on /var/run/docker.sock"

到这里 我们的docker 离线安装已经完工。
可以使用docker -v 命令查看安装的版本是否对得上。

CentOS7离线安装Docker和卸载Docker步骤(亲测有效)

一、CentOS7离线安装Docker步骤

1、docker安装包下载地址

2、将下载的docker-18.06.3-ce.tgz文件上传到centos7系统上(lz上传到了/home/docker目录下),并执行tar命令解压,如下图:

[root@CenOS-1 docker]# tar -zxvf docker-18.06.3-ce.tgz

3、将/home/docker目录下解压出来的所有docker文件复制到 /usr/bin/ 目录下,如下图:

[root@CenOS-1 docker]# cp docker/* /usr/bin/


4、将docker注册为service,进入/etc/systemd/system/目录,并创建docker.service文件,如下图:

[root@CenOS-1 docker]# cd /etc/systemd/system/
[root@CenOS-1 system]# touch docker.service


5、编辑docker.service文件,将以下内容复制到docker.service文件中,如下图:

  • 注:以下内容中 --insecure-registry=192.168.3.10 此处改为你自己服务器ip。

    [root@CenOS-1 system]# vim 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
    # 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.3.10
    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
    

6、给docker.service文件添加执行权限,如下图:

[root@CenOS-1 system]# chmod 777 /etc/systemd/system/docker.servic


7、重新加载配置文件,如下图:

  • 注:每次修改docker.service这个文件时都要重新加载下。


8、启动Docker服务,如下图:

[root@CenOS-1 system]# systemctl start docker

9、设置开机启动Docker服务,如下图:

[root@CenOS-1 system]# systemctl enable docker.service

10、验证docker是否启动成功,如下图:

  • 查看Docker状态,显示active(running)表示启动成功

    [root@CenOS-1 system]# systemctl status docker
    

  • 查看Docker版本

    [root@CenOS-1 system]# docker -v
    

11、配置镜像加速器,默认是到国外拉取镜像速度慢,如下图:

  • 编辑 /etc/docker/目录下的daemon.json文件,将以下内容复制到daemon.json文件中,如下图:

    [root@CenOS-1 system]# vim /etc/docker/daemon.json
    
    {"registry-mirrors": ["http://hub-mirror.c.163.com"]}
    

  • 重启docker,使其daemon.json文件配置生效,如下图:

二、CentOS7离线卸载Docker步骤

参考:https://blog.csdn.net/qq_20466211/article/details/108762800
1、删除服务

#取消开机自启
[root@CenOS-1 system]# systemctl disable docker
#取消注册文件
[root@CenOS-1 system]# rm -rf /etc/systemd/system/docker.service

2、删除命令

[root@CenOS-1 system]# rm -rf /usr/bin/containerd
[root@CenOS-1 system]# rm -rf /usr/bin/containerd-shim
[root@CenOS-1 system]# rm -rf /usr/bin/ctr
[root@CenOS-1 system]# rm -rf /usr/bin/runc
[root@CenOS-1 system]# rm -rf /usr/bin/docker*

3、删除配置

[root@CenOS-1 system]# rm -rf /etc/docker/

4、删除镜像或容器

[root@CenOS-1 system]# rm -rf /var/lib/docker

以上是关于Centos7 离线安装docker的主要内容,如果未能解决你的问题,请参考以下文章

centos7如何离线部署dataease

centos7 离线安装神器yumdownloader

Linux离线安装Docker

Centos7离线安装gcc4.8

CentOS7离线安装Docker和卸载Docker步骤(亲测有效)

CentOS7 离线安装 squid4(qbit)