拉去docker镜像
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-27.0.3.tgz
解压源码包至指定目录下
tar xzf docker-27.0.3.tgz
解压出来的docker目录下的指令复制到 /usr/bin/
cp docker/ /usr/bin/*
docker注册为service服务
vim /etc/systemd/system/docker.service
加入下面内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=2
StartLimitInterval=30s[Install]
WantedBy=multi-user.target
#################################################################
注释
[Unit] 部分
- Description: 服务的描述,这里是“Docker Application Container Engine”。
- Documentation: 服务的文档链接,指向Docker的官方文档。
- After: 定义服务启动顺序,这里表示Docker服务在network-online.target和firewalld.service之后启动。 ##网络正常运行可以使用systemctl status network-online.target
- Wants: 表示Docker服务想要network-online.target,如果network-online.target启动失败,Docker服务不会启动,但这不会阻止系统启动。
[Service] 部分
- Type: 服务的启动类型,notify表示服务会在准备好后通知Systemd它已启动。
- ExecStart: 服务启动时执行的命令,这里是/usr/bin/dockerd,Docker的守护进程。
- ExecReload: 重新加载服务时执行的命令,这里是通过发送HUP信号来重新加载Docker守护进程。
- LimitNOFILE, LimitNPROC, LimitCORE: 分别设置打开文件、进程数和核心文件大小的限制,这里都设置为infinity,表示无限制。
- TimeoutStartSec: 服务启动的超时时间,设置为0表示没有超时限制。
- Delegate: 允许服务管理的子进程获得与父进程相同的控制组(cgroup)和资源限制。
- KillMode: 停止服务时如何发送信号,process表示只向主进程发送信号。
- Restart: 服务失败后的重启策略,on-failure表示只有在服务失败时才重启。
- StartLimitBurst, StartLimitInterval: 限制服务在指定时间内启动的次数,这里是在30秒内最多启动2次。
[Install] 部分
- WantedBy: 表示这个服务被哪个目标所需要,multi-user.target是系统启动后的一个常见目标,表示多用户模式。
添加执行权限并重新加载配置文件
chmod a-x /etc/systemd/system/docker.service
######## 注释
chmod a-x
的含义是对所有用户(a代表all,即所有用户)移除执行(x)权限。这意味着无论是文件的所有者、所属组的成员还是其他用户,都将失去对该文件或目录的执行权限。
启动查看docker状态
systemctl start docker
systemctl status docker