Linux离线安装Docker

68

查看服务器架构信息

uname -m

下载压缩包并传输到服务器

  • 访问https://download.docker.com/linux/static/stable/,并下载对应架构下的tgz压缩包,传输到服务器

解压并拷贝

# 解压安装包
tar -zxvf docker-aarch64-24.0.5.tgz

# 将解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/

配置systemd服务

  • 不同的系统对应的服务管理器可能不一样,所以请自行查询自己服务器系统对应的服务管理器配置方式

  • 本次示例的系统是openeuler和centos7,都是由systemd作为服务管理器

  1. 创建并修改docker.service文件/usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target
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 --selinux-enabled=false
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. 设置权限

chmod 777 /usr/lib/systemd/system/docker.service
  1. 重载配置文件

systemctl daemon-reload
  1. /usr/lib/systemd/system//etc/systemd/system/区别和联系

  • 正常情况下通过daemon-reload,两个目录下的service都会被重载

  • etc和usr如果有重名的service,则etc的service会覆盖usr下的service,因为etc的service优先级要高

  • 系统每次启动都会读取etc下的service,所以当你执行systemctl enable的时候,安装在usr下的service会被ln -s/etc/systemd/system/multi-user.target.wants/

配置docker数据目录[可选]

没有特殊需求的话可以不选择更改默认数据目录/var/lib/docker

  1. 创建目录

mkdir /data/docker
  1. 修改docker配置文件/etc/docker/daemon.json

{
  "data-root": "/data/docker"
}
  1. 启动docker服务

systemctl start docker

启停docker服务

  • 启动docker服务

systemctl start docker
  • 设置开机自启动

systemctl enable docker.service
  • 查看docker状态

systemctl status docker
  • 验证

systemctl status docker