Linux离线安装Docker过程
编辑准备离线安装包
确认机器架构
执行uname -m查看机器架构

获取压缩包
前往官方下载站根据机器架构进入对应目录下载最新版离线压缩包,并上传到服务器任意目录(例如/data/soft目录)
解压压缩包
执行 tar -zxvf docker-29.1.3.tgz 解压

安装 Docker
执行cp docker/* /usr/bin/将解压出来的docker文件内容拷贝或者移动到/usr/bin/目录下,执行 docker -v 查看可以看到版本号。
执行vi /etc/systemd/system/docker.service增加Docker 守护进程的 systemd 单元配置文件,内容如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
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中增加参数:-H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536
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依次执行systemctl daemon-reload systemctl start docker systemctl status docker启动docker服务,并查看运行状态

Docker 服务管理相关命令
启动 docker 服务:
systemctl start docker查看 docker 服务的运行状态:
systemctl status docker停止运行:
systemctl stop docker重新启动:
systemctl restart docker设置开机自动启动:
systemctl enable docker禁用开机自动启动:
systemctl disabled docker查看自动启动状态:
systemctl is-enabled docker.service查看 docker 版本号:
docker -v
修改Docker默认存储路径
默认情况下docker安装的所有镜像储存在 /var/lib/docker 目录下,可以使用 docker info | grep 'Docker Root Dir' 命令查看,此目录默认挂载到跟分区下,如果根分区比较小可以根据以下步骤将其移动到其他数据盘:
执行
systemctl stop docker.service停止docker服务创建新目录用于存储 Docker 数据,例如
mkdir -p /data/docker(请替换成自己想要存放的目录)执行
rsync -avz /var/lib/docker/* /data/docker/将/var/lib/docker目录下的所有数据复制到新目录修改
/etc/docker/daemon.json配置文件,此文件默认不会自动创建,可以执行mkdir -p /etc/docker && cd /etc/docker && vi daemon.json新建此文件,并增加一下内容:
{
"data-root": "/data/docker"
}执行
systemctl start docker启动docker服务执行
docker info | grep 'Docker Root Dir'确认配置是否生效确保各项服务正常后,可以删除之前的文件
rm -rf /var/lib/docker
离线加载容器
常用的容器都会提供各种架构的版本,比如下载Arm64版本的Redis,操作如下:
找台联网并安装过docker的机器(任意架构)执行
docker pull --platform linux/arm64/v8 docker.m.daocloud.io/redis:8.0.3将拉取的容器保存在离线文件:
docker save -o /data/redis-8.0.3.tar docker.m.daocloud.io/redis:8.0.3上传到目标离线机器,执行
docker load -i redis-8.0.3.tar加载容器
- 0
- 0
-
赞助
支付宝
微信
-
分享