安装

二进制安装参考网址

https://docs.docker.com/engine/install/binaries/

快速文档

下载离线二进制包,可根据自己需要的版本下载

docker二进制文件: https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz

docker-compose 二进制文件: https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-linux-x86_64

dcoker安装脚本命令

如下命令可保存成docker-install.sh脚本执行即可

#!/bin/bash
echo "(1/11): 解压Docker安装文件..."
tar -zxvf docker-24.0.6.tgz
sleep 5
echo "(2/11): 文件解压完毕!开始迁移Docker文件..."
mv docker/* /usr/bin/
echo "(3/11): 迁移完成!开始将Docker添加到service服务..."
cat <<'EOF' > /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
# 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
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
EOF
sleep 2
systemctl daemon-reload
echo "(4/11): 添加到service服务完成!将Docker设置开机自启动..."
systemctl enable docker.service
echo "(5/11): 开机自启设置完成!关闭firewalld防火墙..."
systemctl stop firewalld
echo "(6/11): 防火墙已关闭!首次启动Docker..."
systemctl start docker
sleep 2
echo "(7/11): Docker启动完毕,启动firewalld防火墙"
systemctl start firewalld

echo "(8/11): 防火墙启动成功,查看Docker状态..."
systemctl status docker
echo "(9/11): 查询Docker版本..."
docker version

echo "(10/11): 开始安装Docker Compose..."
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
echo "(11/11): Docker Compose安装完毕"
  

安装启动时遇到的问题

启动docker卡住无报错情况 可能是防火墙问题 先关闭防火墙再启动docker

    systemctl stop firewalld 关闭防火墙
    systemctl start firewalld 开启防火墙

docker卸载脚本

如下命令可保存成 docker-uninstall.sh 文件,并将如下内容粘贴进去。

#!/bin/bash
echo "(1/8): 开始删除Docker服务..."

echo '(2/8)停止docker'
systemctl stop docker

echo '(3/8)取消开机自启'
systemctl disable docker

echo '(4/8)取消注册文件'
rm -rf /etc/systemd/system/docker.service

echo '(5/8)删除docker相关文件'
rm -rf /usr/bin/containerd
rm -rf /usr/bin/containerd-shim
rm -rf /usr/bin/ctr
rm -rf /usr/bin/runc
rm -rf /usr/bin/docker*

echo '(6/8)删除docker配置'
rm -rf /etc/docker/

echo '(7/8)删除镜像/容器'
rm -rf /var/lib/docker

echo '(8/8)重新加载配置文件'
systemctl daemon-reload
echo '卸载成功!'

搭建docker容器服务器遇到的问题

容器之间通信遇到No route to host ,找到容器服务用到的网卡设置信任即可,默认为docker0

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --reload