Docker常用命令(有着一篇就足够了)

Docker 常用命令全面教程

一、Docker 基础概念

在开始命令之前,先了解几个核心概念:

  • 镜像(Image):Docker 的静态模板,包含运行环境和应用程序
  • 容器(Container):镜像的运行实例
  • 仓库(Repository):存放镜像的地方,如 Docker Hub

二、镜像操作命令

1. 镜像搜索与拉取

# 搜索镜像 (Docker Hub)
docker search nginx

# 拉取镜像 (不指定tag默认拉取latest)
docker pull nginx
docker pull nginx:1.21.6

2. 镜像管理

# 列出本地镜像
docker images

# 查看镜像详情
docker inspect nginx:latest

# 删除镜像
docker rmi nginx:1.21.6

# 强制删除镜像 (即使有容器使用)
docker rmi -f nginx:1.21.6

3. 镜像构建

# 构建镜像 (在当前目录查找Dockerfile)
docker build -t myapp:1.0 .

# 指定Dockerfile路径构建
docker build -t myapp:1.0 -f /path/to/Dockerfile .

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

三、容器操作命令

1. 容器启动

# 启动容器并命名
docker run --name mynginx nginx

# 后台运行容器 (-d)
docker run -it --name mynginx nginx

# 映射端口 (-p 主机端口:容器端口)
docker run -it -p 8080:80 --name mynginx nginx

# 映射目录/卷 (-v 主机目录:容器目录)
docker run -it -v /host/path:/container/path --name mynginx nginx

# 设置环境变量 (-e)
docker run -it -e "ENV_VAR=value" --name mynginx nginx

# 交互式运行容器 (-it)
docker run -it --name myalpine alpine sh

# 容器退出后自动删除 (--rm)
docker run --rm -it alpine sh

2. 容器管理

# 列出运行中的容器
docker ps

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

# 启动/停止/重启容器
docker start mynginx
docker stop mynginx
docker restart mynginx

# 删除容器
docker rm mynginx

# 强制删除运行中的容器
docker rm -f mynginx

# 查看容器日志
docker logs mynginx

# 实时查看日志 (-f)
docker logs -f mynginx

# 查看容器详情
docker inspect mynginx

# 查看容器内进程
docker top mynginx

# 查看容器资源使用情况
docker stats mynginx

# 进入运行中的容器 (-it)
docker exec -it mynginx bash

3. 容器与主机文件交互

# 从容器复制文件到主机
docker cp mynginx:/path/to/file /host/path

# 从主机复制文件到容器
docker cp /host/path mynginx:/container/path

四、数据卷操作

# 创建数据卷
docker volume create myvolume

# 列出数据卷
docker volume ls

# 查看数据卷详情
docker volume inspect myvolume

# 删除数据卷
docker volume rm myvolume

# 清理无用数据卷
docker volume prune

五、网络操作

# 列出网络
docker network ls

# 创建网络
docker network create mynetwork

# 查看网络详情
docker network inspect mynetwork

# 连接容器到网络
docker network connect mynetwork mynginx

# 断开容器与网络的连接
docker network disconnect mynetwork mynginx

# 删除网络
docker network rm mynetwork

六、镜像打包与加载

# 将容器保存为镜像
docker commit mynginx mynginx:snapshot

# 将镜像保存为tar文件
docker save -o nginx.tar nginx:latest

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

# 导出容器文件系统 (不包含历史、元数据)
docker export -o nginx-container.tar mynginx

# 导入容器文件系统为镜像
docker import nginx-container.tar mynginx:imported

七、Docker Compose 常用命令

# 启动服务 (后台运行)
docker-compose up -d

# 停止服务
docker-compose down

# 查看服务状态
docker-compose ps

# 查看服务日志
docker-compose logs

# 构建服务镜像
docker-compose build

# 重新创建并启动所有容器
docker-compose up --force-recreate

八、系统清理

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

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

# 强制删除所有未被使用的资源
docker system prune -a --volumes

九、实用示例

1. 运行 MySQL 容器

docker run -d \
  --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -e MYSQL_DATABASE=myapp \
  -e MYSQL_USER=user \
  -e MYSQL_PASSWORD=password \
  -p 3306:3306 \
  -v mysql_data:/var/lib/mysql \
  mysql:8.0

2. 运行 Redis 容器

docker run -d \
  --name redis-server \
  -p 6379:6379 \
  -v redis_data:/data \
  redis:6.2 \
  redis-server --save 60 1 --loglevel warning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小树苗m

您的打赏,是我的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值