Docker 常见命令
·
以下是Docker 的常见命令分类整理,涵盖容器管理、镜像操作、网络配置、数据卷使用等核心场景,适合开发者快速查阅:
一、容器生命周期管理
1. 容器运行与启动
# 运行新容器(前台模式)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 常用选项:
-d # 后台运行(守护态)
--name # 指定容器名称
-p # 端口映射(主机端口:容器端口)
-v # 数据卷挂载(主机路径:容器路径)
--rm # 容器退出后自动删除
-e # 设置环境变量
--network # 指定网络(如bridge、host)
-it # 交互模式(-i保持输入,-t分配终端)
# 示例:运行Nginx容器,映射80端口,命名为web-server
docker run -d --name web-server -p 80:80 nginx
2. 容器启动/停止/重启
docker start [CONTAINER_ID/NAME] # 启动已停止的容器
docker stop [CONTAINER_ID/NAME] # 停止运行中的容器(默认等待10秒)
docker restart [CONTAINER_ID/NAME] # 重启容器
docker pause [CONTAINER_ID/NAME] # 暂停容器(冻结进程)
docker unpause [CONTAINER_ID/NAME] # 恢复暂停的容器
3. 进入容器交互
# 进入运行中的容器(退出后容器继续运行)
docker exec -it [CONTAINER_ID/NAME] /bin/bash
# 示例:进入名为web-server的容器
docker exec -it web-server /bin/bash
4. 查看容器状态
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器(包括已停止的)
docker logs [CONTAINER_ID/NAME] # 查看容器日志
docker top [CONTAINER_ID/NAME] # 查看容器内进程
5. 删除容器
docker rm [CONTAINER_ID/NAME] # 删除已停止的容器
docker rm -f [CONTAINER_ID/NAME] # 强制删除运行中的容器
docker container prune # 删除所有已停止的容器
二、镜像管理
1. 镜像搜索与拉取
docker search [IMAGE_NAME] # 搜索Docker Hub上的镜像
docker pull [IMAGE_NAME:TAG] # 拉取镜像(默认latest标签)
# 示例:拉取Ubuntu 22.04镜像
docker pull ubuntu:22.04
2. 镜像列表与删除
docker images # 查看本地镜像列表
docker rmi [IMAGE_ID/NAME] # 删除镜像
docker image prune # 删除悬空镜像(未被任何容器引用的中间层)
3. 构建自定义镜像
# 通过Dockerfile构建镜像
docker build -t [IMAGE_NAME:TAG] [CONTEXT_PATH]
# 常用选项:
-t # 指定镜像名称和标签
--no-cache # 禁用缓存,强制重新构建
# 示例:构建名为my-app的镜像,标签为v1
docker build -t my-app:v1 .
4. 镜像标签与推送
docker tag [SOURCE_IMAGE:TAG] [TARGET_IMAGE:TAG] # 添加标签
docker push [IMAGE_NAME:TAG] # 推送镜像到仓库
# 示例:将本地镜像推送到Docker Hub
docker tag my-app:v1 username/my-app:v1
docker push username/my-app:v1
三、网络管理
1. 网络创建与查看
docker network create [NETWORK_NAME] # 创建自定义网络
docker network ls # 查看所有网络
docker network inspect [NETWORK_NAME] # 查看网络详情
2. 容器网络连接
# 将容器连接到指定网络
docker network connect [NETWORK_NAME] [CONTAINER_ID/NAME]
# 断开容器网络连接
docker network disconnect [NETWORK_NAME] [CONTAINER_ID/NAME]
3. 端口映射与暴露
# 运行容器时映射端口(示例:将主机8080端口映射到容器80端口)
docker run -p 8080:80 nginx
# 查看容器端口映射
docker port [CONTAINER_ID/NAME]
四、数据管理
1. 数据卷(Volume)
# 创建数据卷
docker volume create [VOLUME_NAME]
# 查看数据卷列表
docker volume ls
# 运行容器时挂载数据卷
docker run -v [VOLUME_NAME]:[CONTAINER_PATH] [IMAGE_NAME]
# 示例:挂载名为my-vol的卷到容器的/data目录
docker run -v my-vol:/data alpine
2. 绑定挂载(Bind Mount)
# 将主机目录挂载到容器(示例:挂载当前目录到容器的/app)
docker run -v $(pwd):/app [IMAGE_NAME]
五、系统资源管理
1. 资源限制
# 限制容器内存和CPU使用
docker run --memory="512m" --cpus="1.5" [IMAGE_NAME]
# 示例:限制容器最多使用512MB内存和1.5个CPU核心
docker run -d --name resource-test --memory="512m" --cpus="1.5" nginx
2. 查看资源使用
docker stats [CONTAINER_ID/NAME] # 实时显示容器资源使用情况
六、实用工具命令
docker version # 查看Docker版本信息
docker info # 显示系统级信息(如引擎版本、存储驱动)
docker system df # 查看磁盘使用情况
docker system prune # 清理所有未使用的资源(镜像、容器、网络)
七、Docker Compose 常用命令
docker-compose up -d # 启动所有服务(后台模式)
docker-compose down # 停止并删除所有容器
docker-compose ps # 查看服务状态
docker-compose logs [SERVICE_NAME] # 查看指定服务日志
八、常见问题排查
- 端口冲突:检查主机端口是否被占用(
netstat -tuln | grep :80)。 - 镜像拉取失败:确认镜像名称和标签正确,或尝试更换国内镜像源(如阿里云、腾讯云)。
- 容器无法访问:检查安全组/防火墙规则,或确认网络模式(
bridge/host)。 - 数据卷权限问题:使用
-v /host/path:/container/path:ro设置只读挂载。
通过掌握这些命令,可以高效完成 Docker 的日常操作。建议结合 docker --help 或官方文档深入学习高级用法(如 Swarm 集群、Dockerfile 优化等)。
更多推荐



所有评论(0)