linux:离线/无网环境安装docker

CentOS7离线安装Docker指南

以centos7系列为例,整个安装在root用户下进行。
先在有网机器上下载对应操作系统和CPU架构的docker二进制安装包,随后,传输到无网机器的root用户下,下载网址。

# x86
https://download.docker.com/linux/static/stable/x86_64/
# arm
https://download.docker.com/linux/static/stable/aarch64/

创建一个docker用户,我们后面可以把docker的数据目录放到该用户的家目录下。

useradd -m -s /bin/bash docker

系统会自动帮 docker 用户创建一个家目录 /home/docker。

将二进制安装包解压到/usr/local/

tar xzvf docker-20.10.7.tgz -C /usr/local/

解压后会有 /usr/local/docker/目录,里面全是二进制文件。
建立软链接,让命令能直接用:

ln -s /usr/local/docker/* /usr/bin/

准备 systemd service 文件 /etc/systemd/system/docker.service

[Unit]
Description=Docker Daemon
After=network.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s SIGTERM $MAINPID
Restart=always
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity

[Install]
WantedBy=multi-user.target

也可以直接将下面两个文件放到/etc/systemd/system/
https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.service
https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.socket

创建docker配置文件

mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
  "data-root": "/home/docker/data"
}
EOF

# 或改为旧版参数(适用于Docker <18.09):
{
  "graph": "/home/docker/data"
}

如果你还需要设置镜像加速器、registry、log 驱动等,都放到这个 JSON 里。把所有运行参数只放在 daemon.json,docker.service 的 ExecStart 只保留 /usr/bin/dockerd,然后 daemon-reload + start,基本就能起。

不同版本的dockerd参数名可能会有变化(例如,上面的例子),如果出现docker服务启动失败,可以根据错误日志来排查,有可能是使用了不支持的参数。
docker的数据目录通常比较占空间,一般放到大容量的磁盘上(/home挂载到一个大容量SSD/disk上),而不是放到系统盘上。

创建好数据目录

mkdir -p /home/docker/data

启动docker进程

systemctl daemon-reload
# 启动docker进程
systemctl start docker
# 查看docker进程状态
systemctl status docker

systemd扩展:
修改了 service 配置文件:比如你刚改了 docker.service 里的 ExecStart,一定要 daemon-reload 才能让 systemd 知道配置变了。
新建了一个自定义 service:比如 /etc/systemd/system/myapp.service,写完文件后也要 reload,否则 systemctl 会提示找不到。
删除了一个 service 文件:reload 后 systemd 会更新内部状态,把它从可用列表里移除。
daemon-reload 只是重新加载配置,不会影响正在运行的服务。
如果你修改了 unit 文件内容,通常的完整操作是:

 systemctl daemon-reload   # 让 systemd 读到新配置
 systemctl restart xxx     # 让服务进程按新配置重启

其他常用命令:

# 设置docker引擎开机自启动
systemctl enable docker
#关闭docker引擎
systemctl stop docker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值