一、系统准备

CentOS 系统

# 安装必要工具
yum -y install wget
yum -y install bash-completion

Ubuntu 系统

# 安装必要工具
apt -y install wget

二、下载安装包

docker下载 https://www.docker.com/

https://download.docker.com/linux/static/stable/x86_64/docker-29.4.0.tgz

三、安装 Docker

3.1 创建安装目录并解压

# 创建安装目录
install -d /app/tools

# 解压 Docker 二进制包
tar xf docker-29.5.2.tgz -C /app/tools

# 创建软链接到系统命令
ln -svf /app/tools/docker/* /usr/bin/

3.2 配置 bash 自动补全

# Docker 自带补全生成命令
docker completion bash > /usr/share/bash-completion/completions/docker

3.3 配置 Docker 镜像加速

# 创建 Docker 配置目录
install -d /etc/docker

# 配置镜像加速(创建 daemon.json 文件)
cat > /etc/docker/daemon.json <<EOF
{
    "registry-mirrors" : [
        "https://docker.m.daocloud.io",
        "https://dockerhub.timeweb.cloud",
        "https://k8s.m.daocloud.io"]
}
EOF

3.4 配置 systemd 服务

# 创建 docker.service 文件
cat > /usr/lib/systemd/system/docker.service <<EOF
[Unit]
Description=docker 
Documentation=https://www.qingwen.me
#启动docker时,需要什么程序已经准备好???(没启动成功页没关系)
After=network-online.target containerd.service   
#如果这个程序没准备好,依旧可以启动docker
Wants=network-online.target

[Service]
Type=notify  #systemd配置,表示,docker进程启动好running/active之后再进行下一步操作;
#服务启动时执行的命令
ExecStart=/usr/bin/dockerd
# 重启进程,$MAINPID表示docker的pid变量(systemd生成的)
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0    #docker停止时等待时间,0表示伊吾县等待其优雅停止,避免强制杀死

LimitNOFILE=infinity    #不限制文件打开数
LimitNPROC=infinity     #不限制系统进程打开数


[Install]
WantedBy=multi-user.target
EOF

# 重新加载 systemd
systemctl daemon-reload

# 启动 Docker 并设置开机自启
systemctl enable --now docker

3.5 验证 Docker 安装

# 查看 Docker 版本
docker version

# 查看 Docker 服务状态
systemctl status docker

四、安装 Docker Compose

下载docker-compose

https://github.com/docker/compose/

点击版本入口,进入版本下载页面

# 向下滑动页面
    - 点击【show all...】展示所有系统类型

# 选择符合我们系统架构的类型
    - docker-compose-linux-x86_64

4.1 安装 Docker Compose 二进制文件

# 复制 Docker Compose 到 Docker 目录
chmod +x docker-compose-v2.30.3
cp docker-compose-v2.30.3 /app/tools/docker/docker-compose

# 创建软链接
ln -svf /app/tools/docker/docker-compose /usr/bin/docker-compose

4.2 验证 Docker Compose

# 查看 Docker Compose 版本
docker-compose version

五、测试运行

测试 Docker

# 运行 hello-world 测试容器
docker run hello-world

# 查看运行中的容器
docker ps

# 查看所有容器
docker ps -a

测试 Docker Compose

# 创建测试目录
mkdir test-compose && cd test-compose

# 创建 docker-compose.yml
cat > docker-compose.yml <<EOF
version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
EOF

# 启动服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 停止并删除服务
docker-compose down

六、卸载 Docker

如果需要完全卸载 Docker,执行以下命令:

# 停止 Docker 服务
systemctl disable --now docker

# 删除 systemd 服务文件
rm -f /usr/lib/systemd/system/docker.service

# 重新加载 systemd
systemctl daemon-reload

# 删除 Docker 程序目录
rm -rf /app/tools/docker

# 删除 Docker 数据目录(注意:这会删除所有容器、镜像和数据)
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

# 删除软链接
rm -f /usr/bin/containerd
rm -f /usr/bin/containerd-shim
rm -f /usr/bin/containerd-shim-runc-v2
rm -f /usr/bin/ctr
rm -f /usr/bin/docker
rm -f /usr/bin/dockerd
rm -f /usr/bin/docker-init
rm -f /usr/bin/docker-proxy
rm -f /usr/bin/runc
rm -f /usr/bin/docker-compose

七、常用命令汇总

Docker 服务管理

# 启动 Docker
systemctl start docker

# 停止 Docker
systemctl stop docker

# 重启 Docker
systemctl restart docker

# 查看 Docker 状态
systemctl status docker

# 查看 Docker 日志
journalctl -u docker -f

Docker 基础命令

# 查看镜像列表
docker images

# 查看容器列表
docker ps
docker ps -a

# 拉取镜像
docker pull nginx:latest

# 运行容器
docker run -d --name mynginx -p 80:80 nginx

# 停止容器
docker stop mynginx

# 删除容器
docker rm mynginx

# 删除镜像
docker rmi nginx:latest

Docker Compose 命令

# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 查看日志
docker-compose logs -f

# 重启服务
docker-compose restart

# 构建镜像并启动
docker-compose up -d --build

更多推荐