docker 常用命令

容器生命周期管理

运行容器

# 运行新容器
docker run -it ubuntu:18.04 bash

# 运行并命名容器
docker run --name my_container image_name

# 运行在后台
docker run -d --name my_container image_name

# 运行并自动删除(退出后删除)
docker run --rm -it image_name

# 运行并挂载目录
docker run -v /host/path:/container/path image_name

# 运行并映射端口
docker run -p 8080:80 image_name

# 特权模式(解决硬链接等问题)
docker run --privileged image_name

启动/停止容器

# 启动已停止的容器
docker start container_name

# 停止运行中的容器
docker stop container_name

# 重启容器
docker restart container_name

# 暂停容器
docker pause container_name

# 恢复容器
docker unpause container_name

进入容器

# 进入运行中的容器
docker exec -it container_name bash

# 以 root 用户进入
docker exec -it --user root container_name bash

# 在容器内执行单条命令
docker exec container_name ls -la

镜像管理

查看镜像

# 查看所有镜像
docker images

# 查看镜像详情
docker image ls

# 查看镜像历史
docker history image_name

拉取/推送镜像

# 拉取镜像
docker pull ubuntu:18.04

# 推送镜像到仓库
docker push username/image_name:tag

# 从 tar 文件加载镜像
docker load -i image.tar

# 保存镜像为 tar 文件
docker save -o image.tar image_name

删除镜像

# 删除镜像
docker rmi image_name

# 强制删除
docker rmi -f image_name

# 删除所有镜像
docker rmi -f $(docker images -aq)

# 删除悬空镜像
docker image prune

查看信息

# 查看运行中的容器
docker ps

# 查看所有容器(包括停止的)
docker ps -a

# 查看最近创建的容器
docker ps -l

# 查看容器详细信息
docker inspect container_name

# 查看容器日志
docker logs container_name

# 实时查看日志
docker logs -f container_name

查看系统信息

# 查看 Docker 系统信息
docker system df

# 查看详细磁盘使用
docker system df -v

# 查看 Docker 版本
docker version

# 查看 Docker 信息
docker info

构建镜像

Dockerfile 构建

# 构建镜像
docker build -t my_image .

# 构建时不使用缓存
docker build --no-cache -t my_image .

# 指定 Dockerfile 路径
docker build -f Dockerfile.dev -t my_image .

从容器创建镜像

# 提交容器更改创建新镜像
docker commit container_name new_image_name

# 导出容器
docker export container_name > container.tar

# 导入为镜像
docker import container.tar image_name

数据管理

卷管理

# 创建数据卷
docker volume create my_volume

# 查看数据卷
docker volume ls

# 删除数据卷
docker volume rm my_volume

# 删除未使用的数据卷
docker volume prune

挂载目录

# 挂载主机目录
docker run -v /host/path:/container/path image_name

# 挂载数据卷
docker run -v volume_name:/container/path image_name

# 只读挂载
docker run -v /host/path:/container/path:ro image_name

网络管理

网络操作

# 查看网络
docker network ls

# 创建网络
docker network create my_network

# 查看网络详情
docker network inspect my_network

# 连接容器到网络
docker network connect network_name container_name

# 断开网络连接
docker network disconnect network_name container_name

清理和维护

系统清理

# 删除所有停止的容器
docker container prune

# 删除所有未使用的镜像、容器、网络
docker system prune

# 删除所有未使用的资源(包括数据卷)
docker system prune -a --volumes

# 清理构建缓存
docker builder prune

资源限制

# 限制内存使用
docker run -m 512m image_name

# 限制 CPU 使用
docker run --cpus 1.5 image_name

# 限制内存和 CPU
docker run -m 512m --cpus 1.0 image_name

实用技巧和组合命令

开发环境常用组合

# 开发环境标准启动
docker run -it \
  --name dev_env \
  --privileged \
  -v $(pwd):/workspace \
  -w /workspace \
  dev_image:latest

# 进入开发环境(重用容器)
docker start dev_env && docker exec -it dev_env bash

快速清理

# 一键停止并删除所有容器
docker stop $(docker ps -aq) 2>/dev/null; docker rm $(docker ps -aq) 2>/dev/null

# 一键删除所有镜像
docker rmi -f $(docker images -aq) 2>/dev/null

# 完整系统清理
docker system prune -a -f --volumes

信息查询

# 查看容器IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

# 查看容器资源使用
docker stats container_name

# 查看端口映射
docker port container_name

日常使用流程示例

典型开发工作流

# 1. 启动开发环境
docker run -it --name mydev -v $(pwd):/workspace -w /workspace dev_image

# 2. 退出后重新进入
docker start mydev
docker exec -it mydev bash

# 3. 保存更改到新镜像(如果需要)
docker commit mydev mydev_with_tools:latest

# 4. 清理环境
docker stop mydev
docker rm mydev

镜像分发流程

# 1. 保存镜像
docker save my_image | gzip > my_image.tar.gz

# 2. 传输文件

# 3. 加载镜像
docker load -i my_image.tar.gz

# 4. 运行镜像
docker run -it my_image

重点记住的常用命令

# 最常用的10个命令
docker ps -a                          # 查看所有容器
docker images                         # 查看所有镜像
docker run -it image_name bash        # 运行交互式容器
docker exec -it container_name bash   # 进入运行中的容器
docker start container_name           # 启动容器
docker stop container_name            # 停止容器
docker rm container_name              # 删除容器
docker rmi image_name                 # 删除镜像
docker build -t my_image .            # 构建镜像
docker logs container_name            # 查看日志
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐