1.Docker 常用命令总结表格
Docker 环境信息命令
命令 |
作用 |
docker version |
查看 Docker 客户端和服务端的版本信息 |
docker info |
查看 Docker 系统的详细信息,包括存储驱动、内核版本等 |
docker inspect <name or id> |
获取容器或镜像的详细配置信息 |
docker system df |
查看 Docker 所有资源的磁盘使用情况 |
系统日志信息常用命令
命令 |
作用 |
docker logs <name or id> |
查看容器的日志 |
docker logs -f <name or id> |
实时跟踪容器日志 |
docker events |
查看 Docker 的事件流,实时显示系统事件 |
容器的生命周期管理命令
命令 |
作用 |
docker create |
创建一个容器但不启动 |
docker run |
创建并启动一个容器 |
docker start <name or id> |
启动已经停止的容器 |
docker stop <name or id> |
停止一个正在运行的容器 |
docker rm <name or id> |
删除一个容器 |
容器运维操作命令
命令 |
作用 |
docker exec <name or id> |
在运行中的容器中执行命令 |
docker cp <src> <dest> |
在主机与容器间复制文件 |
docker stats |
查看容器的实时资源使用情况 |
docker top <name or id> |
查看容器内正在运行的进程 |
镜像管理命令
| docker images
| 列出所有本地镜像 |
| docker pull <image>
| 从仓库拉取镜像 |
| docker build -t <name>
| 从 Dockerfile 构建镜像 |
| docker rmi <image>
| 删除本地镜像 |
镜像仓库命令
| docker login
| 登录 Docker 仓库 |
| docker logout
| 登出 Docker 仓库 |
| docker push <image>
| 推送镜像到仓库 |
| docker tag <image> <repo:tag>
| 为镜像打标签 |
2.使用案例
创建并运行容器
docker run -d \
--name myapp-container \
-p 8080:80 \
-e ENVIRONMENT=production \
--network my-network \
-v /host/data:/container/data \
--restart always \
nginx
参数解释:
- -d: 后台运行容器。
- –name: 指定容器名称。
- -p 8080:80: 将容器内的80端口映射到宿主机的8080端口。
- -e ENVIRONMENT=production: 设置环境变量 ENVIRONMENT 为 production。
- –network my-network: 使用指定的 Docker 网络 my-network。
- -v /host/data:/container/data: 将宿主机的 /host/data 目录挂载到容器内的 - /container/data。
- –restart always: 设置容器重启策略为总是重启。
构建镜像并推送到 Docker Hub
docker build -t myusername/myapp:latest .
docker login
docker push myusername/myapp:latest
参数解释:
- docker build -t myusername/myapp:latest .: 在当前目录下使用 Dockerfile 构建镜像,并命名为 myusername/myapp:latest。
- docker login: 登录到 Docker Hub 以便推送镜像。
- docker push: 将构建的镜像推送到指定的 Docker Hub 仓库。
资源限制和日志管理
docker run -d \
--name myapp-container \
-p 8080:80 \
--memory="512m" \
--cpus="1.0" \
nginx
docker logs --since="2024-11-29T10:00:00" --until="2024-11-29T12:00:00" myapp-container
docker run -d \
--name myapp-container \
-p 8080:80 \
--log-driver=json-file \
--log-opt max-size=10m \
--log-opt max-file=3 \
nginx
参数解释:
- –memory=“512m”: 为容器限制最大内存为 512MB。
- –cpus=“1.0”: 为容器分配 1 个 CPU。
- –since 和 --until: 限制查看日志的时间范围。
- –log-driver=json-file: 使用 json-file 日志驱动,记录容器日志到 JSON 文件。
- –log-opt max-size=10m: 限制日志文件的最大大小为 10MB。
- –log-opt max-file=3: 设置最大日志文件数目为 3,超出时会删除最旧的日志。
定期清理不再使用的镜像和容器
docker stop $(docker ps -q)
docker container prune
docker image prune -a
docker network prune
docker volume prune
常用组合命令
docker stop $(docker ps -q)
docker rm $(docker ps -a -q -f status=exited)
docker image prune -a -f
docker system prune -a -f --volumes
docker rmi $(docker images -f "dangling=true" -q)
docker stats $(docker ps -q)
docker logs -f $(docker ps -q)
docker exec -it $(docker ps -q) /bin/bash
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
docker network prune -f
docker stats --all --no-stream
docker start $(docker ps -a -q -f "status=exited")
docker rmi $(docker images -f "dangling=true" -q) && docker builder prune -f