Docker Essentials - Docker基础命令与容器管理
v1.0.0提供常用的 Docker 命令集合,覆盖容器生命周期、日志查看、镜像构建与管理、Docker Compose 使用以及系统清理等工作流,帮助开发者高效地进行容器化开发与运维。
运行时依赖
安装命令
点击复制本土化适配说明
使用本技能前请确保本地已安装 Docker,且 Docker 命令已加入系统 PATH。
技能文档
用于容器和镜像管理的核心 Docker 命令。
容器生命周期
运行容器
# 从镜像运行容器 docker run nginx# 后台运行(分离模式) docker run -d nginx
# 指定容器名称 docker run --name my-nginx -d nginx
# 端口映射 docker run -p 8080:80 -d nginx
# 设置环境变量 docker run -e MY_VAR=value -d app
# 挂载卷 docker run -v /host/path:/container/path -d app
# 退出后自动移除容器 docker run --rm alpine echo "Hello"
# 交互式终端 docker run -it ubuntu bash
管理容器
# 查看运行中的容器 docker ps# 查看全部容器(包括已停止) docker ps -a
# 停止容器 docker stop container_name
# 启动已停止的容器 docker start container_name
# 重启容器 docker restart container_name
# 删除容器 docker rm container_name
# 强制删除运行中的容器 docker rm -f container_name
# 删除所有已停止的容器 docker container prune
容器检查与调试
查看日志
# 输出日志 docker logs container_name# 实时跟踪日志(类似 tail -f) docker logs -f container_name
# 查看最近 100 行日志 docker logs --tail 100 container_name
# 带时间戳的日志 docker logs -t container_name
执行命令
# 在运行中的容器内执行命令 docker exec container_name ls -la# 交互式 shell docker exec -it container_name bash
# 以指定用户执行 docker exec -u root -it container_name bash
# 带环境变量执行 docker exec -e VAR=value container_name env
检查容器信息
# 查看容器详情 docker inspect container_name# 获取特定字段(JSONPath) docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
# 查看容器资源使用情况 docker stats
# 查看指定容器的资源使用 docker stats container_name
# 查看容器内部进程 docker top container_name
镜像管理
构建镜像
# 基于 Dockerfile 构建 docker build -t myapp:1.0 .# 使用自定义 Dockerfile docker build -f Dockerfile.dev -t myapp:dev .
# 使用构建参数 docker build --build-arg VERSION=1.0 -t myapp .
# 不使用缓存构建 docker build --no-cache -t myapp .
管理镜像
# 列出本地镜像 docker images# 从仓库拉取镜像 docker pull nginx:latest
# 为镜像打标签 docker tag myapp:1.0 myapp:latest
# 推送镜像到仓库 docker push myrepo/myapp:1.0
# 删除镜像 docker rmi image_name
# 删除未使用的镜像 docker image prune
# 删除所有未使用的镜像 docker image prune -a
Docker Compose
基础操作
# 启动服务 docker-compose up# 后台启动 docker-compose up -d
# 停止服务 docker-compose down
# 停止并删除卷 docker-compose down -v
# 查看日志 docker-compose logs
# 实时跟踪指定服务日志 docker-compose logs -f web
# 扩容服务(示例:将 web 扩展到 3 实例) docker-compose up -d --scale web=3
服务管理
# 列出服务 docker-compose ps# 在服务容器内执行命令 docker-compose exec web bash
# 重启服务 docker-compose restart web
# 重建服务 docker-compose build web
# 重建并启动服务 docker-compose up -d --build
网络管理
# 列出网络 docker network ls# 创建网络 docker network create mynetwork
# 将容器连接到网络 docker network connect mynetwork container_name
# 从网络断开容器 docker network disconnect mynetwork container_name
# 检查网络详情 docker network inspect mynetwork
# 删除网络 docker network rm mynetwork
卷管理
# 列出卷 docker volume ls# 创建卷 docker volume create myvolume
# 检查卷信息 docker volume inspect myvolume
# 删除卷 docker volume rm myvolume
# 删除未使用的卷 docker volume prune
# 使用卷运行容器 docker run -v myvolume:/data -d app
系统管理
# 查看磁盘使用情况 docker system df# 清理所有未使用资源 docker system prune
# 连同未使用的镜像一起清理 docker system prune -a
# 同时清理卷 docker system prune --volumes
# 显示 Docker 信息 docker info
# 显示 Docker 版本 docker version
常见工作流
开发容器
docker run -it --rm \
-v $(pwd):/app \
-w /app \
-p 3000:3000 \
node:18 \
npm run dev
数据库容器
docker run -d \
--name postgres \
-e POSTGRES_PASSWORD=secret \
-e POSTGRES_DB=mydb \
-v postgres-data:/var/lib/postgresql/data \
-p 5432:5432 \
postgres:15
快速调试
# 进入运行中的容器 shell docker exec -it container_name sh# 从容器复制文件到本地 docker cp container_name:/path/to/file ./local/path
# 将本地文件复制到容器 docker cp ./local/file container_name:/path/in/container
多阶段构建示例
# Dockerfile FROM node:18 AS builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build
FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html
常用参数说明
docker run 常用标志
-d:后台(分离)模式-it:交互式终端-p:端口映射(host:container)-v:卷挂载-e:环境变量--name:容器名称--rm:退出后自动移除容器--network:指定网络
docker exec 常用标志
-it:交互式终端-u:指定用户-w:工作目录
使用技巧
- 使用
.dockerignore排除不需要的文件,减小构建上下文。 - 在 Dockerfile 中合并
RUN命令,减少镜像层数。 - 多阶段构建可以显著缩小最终镜像体积。
- 为镜像打上版本标签,便于回滚与管理。
- 对于一次性任务使用
--rm,避免残留容器。 - 采用
docker-compose管理多容器应用。 - 定期执行
docker system prune清理无用资源。
文档链接
- 官方文档: https://docs.docker.com/
- Dockerfile 参考: https://docs.docker.com/engine/reference/builder/
- Compose 文件参考: https://docs.docker.com/compose/compose-file/