linux下离线docker安装运行

linux下离线docker安装运行

前言

  • 如果服务器能外网访问,那么根据官网的描述即可通过包管理器轻松搭建docker环境,但如果服务器处在内网无法访问外网时,那就只能通过离线二进制包进行安装了。

环境

  • 本文所属皆在centos7下运行,内核版本3.10

安装docker

下载docker二进制包

  • 在https://download.docker.com/linux/static/stable/ 此路径下下载对应系统的docker压缩包

  • 比如我此处下载的是docker-18.09.1.tgz

  • 将下载好的压缩包通过scp或xftp拷贝进centos进行解压,比如我解压在docker18091目录下

  • 接着cd到docker18091目录,执行

    sudo cp ./* /usr/bin/
    
  • 以上命令表示把docker18091下的东西拷贝进bin目录下

    注意以上拷贝进bin的步骤不是必须的,但如果没有这步骤,则需要把docker配置进环境变量

配置国内镜像

  • 由于已知的原因,国内访问速度比较慢,因此最好配置下国内的镜像
  • 在/etc/docker/daemon.json(如果没有这个文件那么创建就好了)中添加如下镜像地址(可以修改为你喜欢的任何国内镜像地址)
       {
          "registry-mirrors": ["http://hub-mirror.c.163.com"]
        }
    

运行docker

  • 配置完毕后输入以下命令运行docker,等待一段时间后输入docker -v,如果正常得到版本号那么基本的docker环境已经搭建好了
     sudo dockerd &
    

其他配置

开机启动

  • 二进制版安装是不会开机自启动的,这样每次开机都要手动去执行一下命令运行docker就太麻烦了,因此把docker交给systemd去管理,实现开机自启动

  • 当我们使用systemctl restart docker去重启docker时会发现提示错误

    Failed to execute operation: No such file or directory

  • 这是因为我们没有把docker交给systemd去管理

  • 我们可以查看官方的解决方案:https://docs.docker.com/v17.09/engine/admin/systemd/#manually-create-the-systemd-unit-files ,直接看到最后的标题 Manually create the systemd unit files

  • 在其给出的github(https://github.com/moby/moby/tree/master/contrib/init/systemd)中下载docker.service.rpm和docker.socket两个文件,并将docker.service.rpm改名为docker.service,然后把这两个文件拷进/etc/systemd/system目录下

  • 然后重新开机

    sudo reboot
    
  • 开完机可以启动docker服务了

    sudo systemctl start docker
    
  • 最后执行命令使docker服务开机自启动

    sudo systemctl enable docker 
    
  • 上面的步骤追踪之所以不用原本的docker.service,是因为docker.service比docker.service.rpm多出了Requires=docker.socket这一项,因此会导致错误

    A dependency job for docker.service faled. See ‘journalctl -xe’ for details.

参考

Install Docker CE from binaries | Docker Documentation
https://docs.docker.com/install/linux/docker-ce/binaries/
Control and configure Docker with systemd | Docker Documentation
https://docs.docker.com/v17.09/engine/admin/systemd/#manually-create-the-systemd-unit-files
Post-installation steps for Linux | Docker Documentation
https://docs.docker.com/install/linux/linux-postinstall/
解决二进制方式安装 docker 不能使用 systemd(systemctl) 工具管理 docker 服务的问题 - (ÒωÓױ) - CSDN博客
https://blog.csdn.net/u012814856/article/details/80493760

发布了126 篇原创文章 · 获赞 37 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/huweijian5/article/details/85774404