别着急,坐和放宽
Docker 是一种开源的容器化平台,用于构建、打包和运行应用程序。它允许开发人员将应用程序及其依赖项打包到一个称为容器的独立单元中,以便在不同的环境中部署和运行,而不会受到底层操作系统和硬件的影响。
—————ChatGPT
下面是Debian, Ubuntu, CentOS安装Docker和Docker Compose的方法
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
官方源:
中科大镜像源:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker开机自启
systemctl enable docker.service
# --- Docker 版本 ---
# 查看Docker版本 (简版)
docker -v
# 查看Docker版本 (详细信息)
docker version
# --- 镜像管理 (Image) ---
# 拉取Docker镜像 (不指定标签则默认为 :latest)
docker pull <镜像名称>:<标签>
# 查看本地所有镜像
docker images
# 删除指定镜像
docker rmi <镜像ID或名称>
# 批量删除所有未被使用的镜像 (dangling=true 的镜像)
docker image prune
# --- 容器生命周期 (Container Lifecycle) ---
# 运行一个新容器
docker run [OPTIONS] <镜像名称> [COMMAND] [ARG...]
# 常用 [OPTIONS] 示例:
# -d : 后台运行 (detached mode)
# -p <主机端口>:<容器端口> : 端口映射
# --name <容器名称> : 指定容器名称
# -v <主机路径>:<容器路径> : 挂载数据卷 (volume)
# --restart=always : 总是自动重启
# --rm : 容器停止后自动删除
# 示例:运行一个后台Nginx并映射端口
docker run -d -p 8080:80 --name my-nginx nginx
# 查看正在运行的容器
docker ps
# 查看所有的容器 (包括已停止的)
docker ps -a
# 停止指定容器
docker stop <容器ID或名称>
# 启动一个已停止的容器
docker start <容器ID或名称>
# 重启一个容器
docker restart <容器ID或名称>
# --- 容器操作 (Container Operations) ---
# 进入一个正在运行的容器 (执行交互式 shell)
docker exec -it <容器ID或名称> /bin/bash
# 提示:有些精简镜像可能没有 /bin/bash,可以尝试 /bin/sh
# 查看容器日志
docker logs <容器ID或名称>
# 查看容器日志 (实时跟踪新日志)
docker logs -f <容器ID或名称>
# 查看容器的详细信息 (如 IP 地址)
docker inspect <容器ID或名称>
# --- 清理 (Cleanup) ---
# 删除一个已停止的容器
docker rm <容器ID或名称>
# 强制删除一个正在运行的容器
docker rm -f <容器ID或名称>
# 批量删除所有已停止的容器
docker container prune
# 清理所有未使用的资源 (容器、镜像、网络、数据卷)
docker system prune -a
# --- 网络与数据卷 (Network & Volume) ---
# 查看 Docker 网络列表
docker network ls
# 查看 Docker 数据卷列表
docker volume ls
# (常用) 在前台启动所有服务 (会显示日志)
docker compose up
# (最常用) 在后台启动所有服务 (detached mode)
docker compose up -d
# 如果修改了 docker-compose.yml 文件,使用此命令重建并重启服务
docker compose up -d --build
# 停止并删除由 compose 启动的容器和网络
docker compose down
# 停止并删除容器、网络,并删除数据卷 (volume)
docker compose down -v
# 列出 compose 管理的容器状态
docker compose ps
# 查看所有服务的日志
docker compose logs
# 实时跟踪所有服务的日志
docker compose logs -f
# 查看指定服务的日志
docker compose logs -f <服务名称>
# (例如:docker compose logs -f web)
# 拉取 compose 文件中定义的所有镜像
docker compose pull
# 构建 (或重新构建) compose 文件中定义的镜像
docker compose build
# 停止所有服务 (但不删除容器)
docker compose stop
# 启动已停止的服务
docker compose start
# 重启所有服务
docker compose restart
# (常用) 在一个正在运行的服务容器中执行命令
# (例如:进入 web 服务的 shell)
docker compose exec <服务名称> /bin/bash
# (例如:docker compose exec web /bin/bash)
# 验证并查看最终生效的 compose 配置
docker compose config