Docker基础

Docker基础

一、Docker 核心概念(先搞懂再动手)

在开始操作前,先明确 3 个核心概念,避免 confusion:

  • 镜像(Image):Docker 应用的 “安装包”,包含运行应用所需的代码、依赖、环境配置(如 CentOS 镜像、Nginx 镜像)。

  • 容器(Container):镜像的 “运行实例”,是独立的可执行环境(类似轻量级虚拟机,但更高效),多个容器可共享同一个镜像。

  • 仓库(Repository):存放镜像的 “仓库”(类似 GitHub),官方仓库是 Docker Hub,包含海量开源镜像。

二、Docker 安装

1. CentOS 7 安装步骤

# 1. 卸载旧版本(若有)

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 2. 安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

# 3. 设置 Docker 官方仓库(国内推荐阿里云镜像加速)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 安装 Docker CE(社区版,免费)

yum install -y docker-ce docker-ce-cli containerd.io

# 5. 启动 Docker 并设置开机自启

systemctl start docker

systemctl enable docker

# 6. 验证安装成功(显示版本即正常)

docker --version

2. 配置国内镜像加速(解决拉取镜像慢的问题)

默认从 Docker Hub 拉取镜像较慢,配置阿里云 / 网易云加速:

# 1. 创建配置目录

mkdir -p /etc/docker

# 2. 编写配置文件(以下加速地址暂时可用)

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.ixdev.cn",
    "http://docker.m.daocloud.io",
    "https://dockerproxy.net",
    "https://xdark.top"
  ],
  "log-opts": {
    "max-size": "100m",
    "max-file": "10"
  }
}
EOF

# 3. 重启 Docker 生效

systemctl daemon-reload

systemctl restart docker

# 4. 验证加速是否生效(显示配置的镜像地址即成功)

docker info | grep "Registry Mirrors"

三、Docker 核心命令

命令 功能 示例
docker pull 镜像名:标签 拉取镜像(标签默认 latest,即最新版) docker pull nginx:1.24(拉取 Nginx 1.24 版本)
docker images 查看本地所有镜像 docker images(显示镜像名、标签、ID、大小)
docker rmi 镜像ID/镜像名 删除镜像(需先停止依赖该镜像的容器) docker rmi nginx:1.24docker rmi 0e901e68141f
docker search 镜像名 搜索 Docker Hub 上的镜像 docker search mysql(搜索 MySQL 镜像)
docker save -o 文件名.tar 镜像名 导出镜像到本地文件 docker save -o nginx.tar nginx:1.24
docker load -i 文件名.tar 从本地文件导入镜像 docker load -i nginx.tar
docker ps 查看运行中的容器 docker ps-a 查看所有容器,包括停止的)
docker start 容器名/容器ID 启动已停止的容器 docker start mynginx
docker stop 容器名/容器ID 停止运行中的容器 docker stop mynginxkill 强制停止:docker kill mynginx
docker restart 容器名/容器ID 重启容器 docker restart mynginx
docker exec -it 容器名/容器ID 命令 进入运行中的容器(交互式) docker exec -it mynginx /bin/bash(进入 Nginx 容器终端)
docker logs 容器名/容器ID 查看容器日志 docker logs -f mynginx-f 实时跟踪日志)
docker rm 容器名/容器ID 删除容器(需先停止容器) docker rm mynginx(强制删除运行中的容器:docker rm -f mynginx
docker inspect 容器名/容器ID 查看容器详细信息(IP、挂载等) docker inspect mynginx

四、清理磁盘空间

# 清理停止的容器

docker container prune

# 清理无用镜像(无标签、未被容器使用)

docker image prune -a

# 清理无用数据卷

docker volume prune

# 一键清理所有无用资源(容器、镜像、网络、数据卷)

docker system prune -af