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 --version2. 配置国内镜像加速(解决拉取镜像慢的问题)
默认从 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.24 或 docker 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 mynginx(kill 强制停止: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