• docker离线安装并导入镜像


    实际项目开发过程中,客户环境大多是全内网环境,无法连接互联网。这样docker就不能yum在线联网安装,所需要的镜像也不能在线pull下载。这时就需要进行离线安装docker及镜像。

    1、下载docker安装文件

    离线安装docker,需要下载docker的安装文件。
    地址:https://download.docker.com/linux/static/stable/x86_64/
    我下的是最新的版本[docker-19.03.6.tgz],文件不大,只有60M左右。

    2、离线docker安装

    将安装包文件上传到服务器目录并解压。

    [root@iZbp13sno1lc2yxlhjc4b3Z ~]#tar -xvf docker-19.03.6.tar
    
    • 1

    将解压出来的docker文件内容移动到 /usr/bin/ 目录下

    [root@iZbp13sno1lc2yxlhjc4b3Z ~]#cp docker/* /usr/bin/
    
    • 1

    将docker注册为service,在/etc/systemd/system目录下创建docker.service文件,并配置如下内容保存。

    [root@iZbp13sno1lc2yxlhjc4b3Z ~]#vim /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
    # 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
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    添加文件权限并启动docker,执行如下命令:

    chmod +x /etc/systemd/system/docker.service                      #添加文件权限
    systemctl daemon-reload                                                       #重载unit配置文件
    systemctl start docker                                                            #启动Docker
    systemctl enable docker.service                                            #设置开机自启
    
    • 1
    • 2
    • 3
    • 4

    验证docker安装是否成功:

    systemctl status docker                                                         #查看Docker状态
    docker -v                                                                                #查看Docker版本
    
    • 1
    • 2

    Docker离线安装好后,下面我们把镜像导入到Docker。

    3、离线镜像文件导入
    内网环境没法pull镜像,但是docker本身可以将已有的镜像导出成tar文件,并且可以再次导入到docker,利用这一点,可以实现离线镜像文件的下载。
    找一台可以联网的docker机器,并pull下载需要的镜像文件
    然后使用如下命令将镜像文件导出:

    docker save java:8 -o java.tar  #将java 8的镜像导出成tar文件
    
    • 1

    将tar文件上传到内网docker服务器,使用如下命令导入镜像文件:

    docker load -i java.tar
    
    • 1

    查看导入的镜像文件:

    [root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker images
    REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
    java                                                   8                   d23bdf5b1b1b        3 years ago         643MB
    
    • 1
    • 2
    • 3

    OK,通过上述方式,实现了内网环境下docker的安装和镜像文件下载。后续我们就可以愉快的使用docker来部署管理我们的应用了。

  • 相关阅读:
    Vue的组件传值方式
    SAP中应用角度展示产成品不同工艺路线下的期间产量
    守护进程【概念与实现】
    爬虫使用代理IP不会被限的原因解析
    【seata】引入seata导致原本自定义实现的RequestInterceptor失效
    零代码编程:用ChatGPT批量转换多个视频文件夹到音频并自动移动文件夹
    java生态体系
    C# 设计模式 结构型模式 之 适配器模式
    两个列表的最小索引总和
    项目(交友)
  • 原文地址:https://blog.csdn.net/m0_67401417/article/details/126327624