安装
二进制安装参考网址
快速文档
下载离线二进制包,可根据自己需要的版本下载
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