docker - 离线安装docker

下载

# 查看当前系统,选择所需的 docker 版本,重点区分 x86 和 arm 版本
uname -a

下载地址:https://download.docker.com/linux/static/stable/x86_64/

流程概述

安装过程跟安装 mysql 类似,操作步骤可以概括为:

  1. 解压安装包,复制到特定目录 /usr/bin;
  2. 然后准备一个 docker.service,复制到 /usr/lib/systemd/system;
  3. docker.service 中指定 “数据文件” 的存放路径;
  4. 之后执行几个初始命令即可。

注意:安装包不会占什么磁盘空间,复制到 /usr/bin 没什么不妥,但是数据存放路径,要选用磁盘空间充足的目录。

安装主程序

# 解压安装包
tar -xvf docker-19.03.8.tgz

# 将解压出来的内容移动到指定路径
cp docker/* /usr/bin/

启动文件

新建一个文件 docker.service,复制下列所有内容;

之后将 docker.service 文件复制到 /usr/lib/systemd/system。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
# Requires=docker.socket containerd.service

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
# OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target

如果需要将 “数据文件” 存放到其它路径,修改 ExecStart。

ExecStart=/usr/bin/dockerd  --graph=/target/docker

实际部署项目过程中,经常看到下面两个依赖,可以额外学习一下,本文就不做介绍了。

Requires=docker.socket containerd.service

OOMScoreAdjust

对于 Linux 主机,如果没有足够的内存来执行程序,将会抛出 OOM,随后系统会开始 kill 掉某些进程以达到释放内存的目的。
每个进程都有可能被 kill,包括 Dockerd,如果重要的系统进程被 Kill 掉,就会导致整个系统宕机。

Linux 会为每个进程计算一个分数(score),最终它会将分数最高的进程 kill 掉。

一般不推荐手动修改这个数值,但是会存在一些很糟糕的程序,启动阶段会占用大量内存,导致无法成功部署,
无可奈何的情况下,可以尝试修改 docker.service、containerd.service 的这个参数值。

启动

# 载入配置文件
systemctl daemon-reload 

# 启动 docker
systemctl start docker.service 

# 设置开机自启
systemctl enable docker.service 

验证

# 查看 docker 信息,经常用来查看 docker 安装路径
docker info

# 查看 docker 版本,经常用来确定是否完成安装
docker -v 

# 查看 docker 状态
systemctl status docker 

一键部署

对于集群的环境,可以想办法做一个部署包,写一个 shell 脚本。

基本内容如下,按实际情况调整,在实际工作中,不断丰富脚本的内容。

# 复制 docker 到用户目录
cp ./docker/* /usr/bin/

# 复制配置文件到指定目录
cp ./docker.service /usr/lib/systemd/system/


# 载入配置文件
systemctl daemon-reload 

sleep 1

# 设置开机自启
systemctl disable docker.service 
# 设置开机自启
systemctl enable docker.service 

sleep 1

# 启动 docker
systemctl restart docker 

# 打印 docker 信息
docker info

rpm 版本

最近还见过 rpm 版本的 docker,解压之后,执行 rpm 命令安装即可。

rpm -ivh ./*

posted on 2024-05-20 11:36  疯狂的妞妞  阅读(288)  评论(0编辑  收藏  举报

导航