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.service
chmod +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 images
sudo docker ps -a
sudo docker --version
sudo 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/docker
sudo 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
#重启linux
systemctl status docker #查看docker状态
4.验证
运行hello-world的镜像:是否能正常运行?
docker run hello-world
docker ps -a | grep hello-world
docker logs -f xxxx 镜像id
5.拓展
5.1)shell脚本安装
# 创建
vim /opt/docker/install.sh
内容如下:
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将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.service
chmod +x /etc/systemd/system/docker.socket
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
在当前安装脚本所在路径执行:
sh install.sh docker-xxxx.tgz
5.2)shell脚本卸载:
vim /opt/docker/uninstall.sh
内容如下:
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
当要卸载的时候在uninstall脚本所在路径下执行:
sh uninstall.sh