
Docker已经成为现代开发和运维的标配工具。本文整理了Docker最常用的命令,按照使用场景分类,方便快速查阅。
一、镜像管理
# 搜索镜像 docker search nginx # 拉取镜像 docker pull nginx:latest # 查看本地镜像 docker images # 删除镜像 docker rmi nginx:latest # 删除所有未使用的镜像 docker image prune -a # 导出镜像为tar文件 docker save -o nginx.tar nginx:latest # 从tar文件导入镜像 docker load -i nginx.tar # 给镜像打标签 docker tag nginx:latest myregistry/nginx:v1
二、容器生命周期
# 创建并启动容器docker run -d --name mynginx -p 80:80 nginx
交互式运行(进入容器)
docker run -it ubuntu:22.04 /bin/bash
启动/停止/重启容器
docker start mynginx
docker stop mynginx
docker restart mynginx删除容器
docker rm mynginx
强制删除运行中的容器
docker rm -f mynginx
删除所有已停止的容器
docker container prune
三、容器操作
# 查看运行中的容器
docker ps查看所有容器(包括已停止的)
docker ps -a
进入运行中的容器
docker exec -it mynginx /bin/bash
查看容器日志
docker logs mynginx
实时跟踪日志
docker logs -f mynginx
查看最近100行日志
docker logs --tail 100 mynginx
查看容器资源使用
docker stats
查看容器详细信息
docker inspect mynginx
从容器复制文件到宿主机
docker cp mynginx:/etc/nginx/nginx.conf ./
从宿主机复制文件到容器
docker cp ./index.html mynginx:/usr/share/nginx/html/
四、网络管理
# 查看所有网络
docker network ls创建自定义网络
docker network create mynet
将容器连接到网络
docker network connect mynet mynginx
断开网络
docker network disconnect mynet mynginx
查看网络详情
docker network inspect mynet
删除网络
docker network rm mynet
五、数据卷管理
# 创建数据卷
docker volume create mydata查看所有数据卷
docker volume ls
查看数据卷详情
docker volume inspect mydata
删除数据卷
docker volume rm mydata
使用数据卷运行容器
docker run -d -v mydata:/data nginx
绑定宿主机目录
docker run -d -v /host/path:/container/path nginx
六、Dockerfile构建
# 构建镜像
docker build -t myapp:v1 .指定Dockerfile构建
docker build -f Dockerfile.prod -t myapp:prod .
不使用缓存构建
docker build --no-cache -t myapp:v1 .
构建时传入参数
docker build --build-arg VERSION=1.0 -t myapp:v1 .
七、Docker Compose
# 启动所有服务
docker-compose up -d停止所有服务
docker-compose down
查看服务状态
docker-compose ps
查看服务日志
docker-compose logs -f
重新构建并启动
docker-compose up -d --build
只启动指定服务
docker-compose up -d nginx mysql
扩展服务实例数
docker-compose up -d --scale web=3
八、实用技巧
# 清理所有未使用的资源(镜像+容器+网络+卷)
docker system prune -a --volumes查看Docker磁盘占用
docker system df
批量停止所有容器
docker stop $(docker ps -q)
批量删除所有已停止容器
docker rm $(docker ps -aq)
查看容器内进程
docker top mynginx
将容器提交为新镜像
docker commit mynginx mynginx-snapshot:v1
常用run参数速查
| 参数 | 说明 | 示例 |
|---|---|---|
| -d | 后台运行 | docker run -d nginx |
| -it | 交互式终端 | docker run -it ubuntu bash |
| -p | 端口映射 | -p 8080:80 |
| -v | 挂载卷 | -v /data:/app/data |
| --name | 容器名称 | --name myapp |
| --restart | 重启策略 | --restart always |
| -e | 环境变量 | -e MYSQL_ROOT_PASSWORD=123 |
| --network | 指定网络 | --network mynet |
| --memory | 内存限制 | --memory 512m |
| --cpus | CPU限制 | --cpus 1.5 |
建议收藏本文,需要时直接搜索对应命令。
评论