Linux环境安装Docker的详细步骤

系统初始化

1.1 关闭防火墙

bash 复制代码
systemctl stop firewalld
systemctl disable firewalld

1.2 开启IPV4转发

编辑sysctl.conf文件,开启IPv4转发:

bash 复制代码
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

1.3 配置SELinux

将SELinux设置为Permissive模式或直接关闭:

bash 复制代码
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

1.4 重启服务器以使SELinux配置生效(可选):

bash 复制代码
reboot
上传dockers.zip文件

将dockers.zip文件上传到目标服务器:

bash 复制代码
scp dockers.zip user@server:/desired/destination
解压并配置文件权限

解压dockers.zip,移除原文件,设置解压文件权限:

bash 复制代码
unzip dockers.zip && rm -rf dockers.zip && chmod 755 *
复制解压文件到/usr/bin

将解压的文件复制到/usr/bin目录:

bash 复制代码
cp -r * /usr/bin/
配置服务文件

1.1 配置containerd的service文件

创建并写入containerd.service文件:

bash 复制代码
cat >/etc/systemd/system/containerd.service <<EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=1048576
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF

1.2 配置docker的service文件

创建并写入docker.service文件:

bash 复制代码
cat >/etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containd.service
Wants=network-online.target
Requires=docker.socket containd.service

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500

[Install]
WantedBy=multi-user.target
EOF

1.3 配置docker的socket文件

创建并写入docker.socket文件:

bash 复制代码
cat >/etc/systemd/system/docker.socket <<EOF
[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target
EOF

1.4 配置docker的daemon.json文件

创建/etc/docker目录并写入配置文件:

bash 复制代码
mkdir -p /etc/docker
cat >/etc/docker/daemon.json <<EOF
{
    //使用systemd作为cgroup驱动,推荐与现代Linux发行版的默认设置一致
    "exec-opts":["native.cgroupdriver=systemd"],
    //配置镜像加速器,加速国内访问DockerHub的镜像拉取速度
    "registry-mirrors":[
        "https://docker.mirrors.ustc.edu.cn",//中国科学技术大学镜像源
        "http://hub-mirror.c.163.com"//网易镜像源
    ],
    //设置不安全的私有镜像仓库地址,适用于没有配置HTTPS的镜像仓库
    "insecure-registries":["10.251.134.189"],
    //设置最大并发下载数,提高镜像拉取的效率
    "max-concurrent-downloads":10,
    //配置日志驱动为json-file,便于查看容器运行日志
    "log-driver":"json-file",
    //设置日志的详细程度,"warn"表示仅记录警告及以上级别的日志
    "log-level":"warn",
    //配置日志选项:限制单个日志文件大小为10MB,最多保留3个文件
    "log-opts":{
        "max-size":"10m",
        "max-file":"3"
    },
    //设置Docker数据存储路径,默认值为/var/lib/docker
    "data-root":"/var/lib/docker"
}
EOF
启动服务

1.1 启动containerd服务并设置开机自启

bash 复制代码
systemctl enable --now containerd.service

1.2 创建Docker用户组

bash 复制代码
group add docker

1.3 启动Docker服务和Socket并设置开机自启

bash 复制代码
systemctl enable --now docker.socket
systemctl enable --now docker.service

1.4 重启Docker服务

bash 复制代码
systemctl restart docker

1.5 再次设置Docker服务开机自启(确保配置无误)

bash 复制代码
systemctl enable docker
验证安装

1.1 检查docker-compose版本:

bash 复制代码
docker-compose -v

1.2 检查服务运行状态:

bash 复制代码
systemctl status dockersystemctl status containerd