阿里云服务器离线安装Docker

1.前言

正常有网的情况下,我们都可以轻松地安装docker,是so-easy的,那在没有联网或者网络不通的环境下如何安装docker呢?下面这篇文章我给大家一 一解答,写这篇文章是由于之前在的一家公司项目要上线,使用的是阿里云上的服务器,所以就在无网的环境下实践安装docker,随便记录下这个过程。


2.准备

    2.1)docker的安装包官网下载地址:

https://download.docker.com/linux/static/stable/https://download.docker.com/linux/static/stable/x86_64/

选择自己的计算机类型,然后下载对应的版本,这里下载的是:



或者如果网路通的话可以使用wget下载到服务上。

2.2)准备两个docker需要的文件

 docker.service 和 docker.socket 文件 GitHub 地址

https://github.com/moby/moby/tree/master/contrib/init/systemd

这也是这版本20.x坑的一个地方,它的运行需要这两个文件,不然会报错的。



3.安装

 官网的二进制包安装参看:

https://docs.docker.com/install/linux/docker-ce/binaries/#install-static-binaries

3.1)上传安装包、docker.service 和 docker.socket 文件到服务器的/opt/docker,这个路径可以自行指定:

/opt/docker路径下解压安装包:

tar xzvf docker-xxxx.tar

将docker.service 和 docker.socket 文件传到如下路径:

给这两个文件授权:

chmod +x /etc/systemd/system/docker.servicechmod +x /etc/systemd/system/docker.socket

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

sudo cp docker/* /usr/bin/

3.3)开启 docker 守护进程(这个与常规安装方式不一样)

 sudo dockerd &

3.4) 查docker,设置开机启动

sudo docker imagessudo docker ps -asudo docker --versionsudo docker info
#先重启 systemctl 守护进程$ sudo systemctl daemon-reload# 再开启 docker 服务$ sudo systemctl start docker# * 如果上一行代码显示失败,那么重启电脑再重试上面两行命令 *$ sudo reboot# 开机自启sudo systemctl enable docker

3.5)配置阿里的镜像加速地址:

3.5.1)设置镜像加速地址:下面是我自己的阿里云镜像加速地址,可以去阿里云申请一个自己的账号,然后会获得一个镜像加速的地址,

 1、阿里云docker仓库
https://dev.aliyun.com/search.html
2、进去注册账号后,点击自己的管理中心。

3、在管理中心点击加速器,右边面板会有你的加速地址,右边面板下面有详细设置步骤。这里以Centos为例:

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["xxxxxxxxxxxxx"]}
EOF

3.5.2)重新加载配置文件、设置开机启动并启动docker服务(逐步运行)

systemctl daemon-reload #重新加载配置文件systemctl enable docker #设置开机重启systemctl start docker #启动docker服务
启动docker服务后,查看docker状态。然后重启后,重新查看docker服务状态
systemctl status docker #查看docker状态reboot #重启linuxsystemctl status docker #查看docker状态



4.验证

    运行hello-world的镜像:是否能正常运行?

docker run hello-worlddocker ps -a | grep hello-worlddocker logs -f xxxx 镜像id


5.拓展

   5.1)shell脚本安装

# 创建vim /opt/docker/install.sh

   内容如下:

#!/bin/shecho '解压tar包...'tar -xvf $1echo '将docker目录移到/usr/bin目录下...'cp docker/* /usr/bin/echo '将docker.service和docker.socket 移到/etc/systemd/system/ 目录...'cp docker.service /etc/systemd/system/cp docker.socket /etc/systemd/system/echo '添加文件权限...'chmod +x /etc/systemd/system/docker.servicechmod +x /etc/systemd/system/docker.socketecho '重新加载配置文件...'systemctl daemon-reloadecho '启动docker...'systemctl start dockerecho '设置开机自启...'systemctl enable docker.serviceecho 'docker安装成功...'docker -v

     在当前安装脚本所在路径执行:

sh install.sh docker-xxxx.tgz

      5.2)shell脚本卸载:

vim /opt/docker/uninstall.sh

容如下

#!/bin/shecho '删除docker.service...'rm -f /etc/systemd/system/docker.serviceecho '删除docker文件...'rm -rf /usr/bin/docker*echo '重新加载配置文件'systemctl daemon-reloadecho '卸载成功...'

当要卸载的时候在uninstall脚本所在路径下执行:

sh uninstall.sh

       5.3)Docker开源Moby和LinuxKit开源项目的介绍

#DockerCon 2017 D1: 发布 LinuxKit 染指 OS,Docker 项目演化为 Mobyhttp://blog.daocloud.io/5151.html

LinuxKit的gitHub:

LinuxKit是为容器组装操作系统的工具包

“Linux也是Docker的组件。”——Patrick Chanezon
https://github.com/linuxkit/linuxkit

Moby开源组织官网:

https://mobyproject.org/

Moby开源组织容器开源项目:

https://mobyproject.org/projects/

Moby的gitHub:

https://github.com/moby/moby

什么是 Moby Project?

Docker 公司决定将软件产品 “Docker” 和开源项目 “Docker” 区分开来。Moby Project 项目将作为开源项目的新名称, 它包含了一系列公共开源组件, 用于组装专门的容器系统。Moby 将由开源社区的开发者共同维护。而 Docker 公司会基于 Moby 构建 Docker 社区版 (CE) 和企业版 (EE) 等软件产品。

Moby是一个新的开源项目,旨在推动软件的容器化,并帮助生态系统使容器技术主流化。它提供了一个组件库,一个组装这些组件成为容器化体系的框架,和一个可以容纳所有容器爱好者的社区

LinuxKit和Moby的关系:

       网络图:

官网图:

感兴趣的小伙伴可以去研究下这个两个开源项目,本文就不做过多的阐述。

请使用浏览器的分享功能分享到微信等