引言
Docker 作为一种轻量级的容器化技术,在软件开发、测试和部署等环节发挥着关键作用。它通过将应用程序及其依赖打包成独立的容器,实现了应用的快速部署和资源的高效利用。本文将详细介绍 Docker 最常用的 19 个命令,帮助读者更好地掌握 Docker 的使用。
🖼️一、镜像管理(Image Management)
1.docker images(查看本地所有镜像)
docker images
# 显示镜像名称、标签、大小等信息
2.docker pull(从远程仓库拉取镜像)
docker pull nginx:latest # 下载最新版Nginx
docker pull python:3.9 # 指定版本下载
3.docker rmi(删除本地镜像)
docker rmi nginx # 删除指定镜像
docker rmi $(docker images -q) # 删除所有镜像(谨慎使用!)
4.docker build(根据 Dockerfile 构建镜像)
docker build -t myapp:1.0 . # -t指定镜像名,末尾点表示当前目录
📦二、容器管理(Container Management)
5.docker ps(查看正在运行的容器)
docker ps # 显示容器ID、状态、端口映射等
6.docker ps -a(查看所有容器<包括已停止的>)
docker ps -a # 显示完整容器生命周期
7.docker run(启动新容器<最核心命令>)
docker run -d -p 8080:80 --name my_nginx nginx
# -d: 后台运行
# -p: 端口映射(主机:容器)
# --name: 指定容器名
8.docker exec(在运行中的容器内执行命令)
docker exec -it my_nginx bash # 进入容器终端
docker exec my_nginx ls /app # 执行单条命令
9.docker logs(查看容器日志)
docker logs my_nginx # 查看最新日志
docker logs -f my_nginx # 实时追踪日志(类似tail -f)
10.docker stop/start/restart(容器生命周期管理)
docker stop my_nginx # 停止容器
docker start my_nginx # 启动已停止的容器
docker restart my_nginx # 重启容器
11.docker rm(删除容器)
docker rm my_nginx # 删除已停止的容器
docker rm -f my_nginx # 强制删除运行中的容器
docker container prune # 清理所有停止的容器
💾 三、数据卷与网络(Volume & Network)
12.docker volume create(创建持久化数据卷)
docker volume create db_data # 创建名为db_data的卷
13.docker volume ls(列出所有数据卷)
docker volume ls # 查看卷列表
14.docker network ls(查看Docker网络)
docker network ls # 显示所有网络
docker network inspect bridge # 查看网络详情
📤镜像打包与导入导出(Image Transfer)
15.docker save(将镜像保存为 “tar 包”)
docker save -o nginx.tar nginx # -o 指定输出文件
16.docker load(从 tar 包导入镜像)
docker load -i nginx.tar # -i 指定输入文件
17.docker export (导出容器文件系统<非镜像格式>)
docker export my_nginx > container.tar
18.docker import(导入容器为镜像)
cat container.tar | docker import - my_image:v1
⚠️关键区别说明
命令组合 | 适用场景 | 是否保留元数据 |
---|---|---|
save + load | 完整镜像迁移(含历史层) | ✅ 是 |
export + import | 容器快照迁移(扁平化文件系统) | ❌ 否 |
⚡五、镜像加速配置(国内用户必备)
国内用户拉取官方镜像时可能速度较慢,通过配置镜像加速器可极大提升下载速度。国内好用的镜像源(https://docker.1ms.run):
# 创建Docker配置目录
sudo mkdir -p /etc/docker
# 添加国内镜像源(推荐组合使用)
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu"
]
}
EOF
# 重载配置并重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速是否生效:
docker pull docker.1ms.run/library/mysql
实测效果:配置前后下载速度对比
❌ 未加速:300KB/s ~ 800KB/s
✅ 加速后:8MB/s ~ 30MB/s
常用镜像源推荐:
镜像源提供商 | 地址 | 稳定性 |
---|---|---|
毫秒镜像 | https://docker.1ms.run | 免费、支持搜索、配置简单、免费技术解答、集成多方主流生态 |
腾讯云 | https://mirror.ccs.tencentyun.com | 仅腾讯云服务器内部可用 |
DaoCloud 官方 | https://docker.m.daocloud.io | 白名单 & 限流 |
耗子面板官方 | https://hub.rat.dev | 部分地区可能无法访问 |
💡高效使用技巧
- 临时使用镜像源(无需修改配置):
# 原来:docker pull nginx:latest (可能很慢或超时)
# 现在:使用毫秒镜像加速
docker pull docker.1ms.run/nginx:latest
💡 将
nginx:latest
替换成你需要的任何镜像和版本
- 别名简化命令:
alias dps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"'
- **容器镜像双清理:
docker system prune -a --volumes # 清理镜像+容器+数据卷
- 查看资源占用:
docker stats # 实时监控容器CPU/内存
通过合理配置镜像加速,可使镜像拉取速度提升10-50倍,极大优化容器操作体验! 🚀