资讯详情

资讯详情

Docker命令大全与容器化实践指南

1. Docker基础命令速查手册作为容器化技术的核心工具Docker的命令行操作是每个开发者必须掌握的技能。下面这张速查表涵盖了从镜像管理到容器运维的全套高频命令建议收藏备用。1.1 镜像生命周期管理镜像作为Docker的核心组件其管理命令使用频率最高# 拉取镜像默认从Docker Hub获取 docker pull nginx:latest # 查看本地镜像列表含占用空间 docker images # 等价于 docker image ls # 删除指定镜像强制删除加-f docker rmi redis:6.0 # 等价于 docker image rm redis:6.0 # 清理悬空镜像节省空间 docker image prune # 导出镜像到tar文件 docker save -o nginx.tar nginx:latest # 从tar文件导入镜像 docker load -i nginx.tar注意删除镜像前需确保没有运行中的容器使用该镜像否则会报错image is being used by stopped container1.2 容器操作命令大全容器是镜像的运行实例日常操作命令最为丰富# 启动新容器-d后台运行--name指定名称 docker run -d --name my_nginx -p 8080:80 nginx # 查看运行中容器-a显示所有状态 docker ps -a # 启动/停止/重启容器 docker start my_nginx docker stop my_nginx docker restart my_nginx # 进入容器交互终端推荐exec方式 docker exec -it my_nginx /bin/bash # 删除容器运行中的需加-f强制删除 docker rm my_nginx # 查看容器日志-f实时追踪 docker logs -f my_nginx # 查看容器资源占用 docker stats my_nginx1.3 网络与存储管理容器网络和持久化存储是生产环境必备知识# 创建自定义网络推荐桥接模式 docker network create my_network # 查看网络列表 docker network ls # 连接容器到指定网络 docker network connect my_network my_nginx # 创建数据卷 docker volume create db_data # 查看数据卷详情 docker volume inspect db_data2. 开发者必备的Docker最佳实践2.1 镜像构建优化技巧通过合理编写Dockerfile可以显著提升构建效率和镜像质量# 多阶段构建示例减少最终镜像体积 FROM golang:1.18 AS builder WORKDIR /app COPY . . RUN go build -o myapp . FROM alpine:latest WORKDIR /root/ COPY --frombuilder /app/myapp . CMD [./myapp]关键优化点使用.dockerignore文件排除无关文件合并RUN指令减少镜像层数固定基础镜像版本避免使用latest按依赖变更频率排序COPY指令2.2 容器安全加固方案生产环境容器安全不容忽视# 以非root用户运行容器 docker run -u 1000:1000 nginx # 设置容器资源限制 docker run -m 512m --cpus 1.5 nginx # 只读文件系统需配合volume写数据 docker run --read-only -v /data nginx安全建议定期扫描镜像漏洞使用docker scan避免在镜像中存储敏感信息限制容器内核能力--cap-drop启用容器用户命名空间隔离2.3 高效调试技巧当容器出现异常时这些命令能快速定位问题# 查看容器进程树 docker top my_nginx # 检查容器配置详情 docker inspect my_nginx # 拷贝容器内文件到宿主机 docker cp my_nginx:/etc/nginx/nginx.conf ./ # 对比容器文件改动 docker diff my_nginx3. 生产环境部署指南3.1 容器编排基础单机多容器管理推荐使用Docker Composeversion: 3.8 services: web: image: nginx:alpine ports: - 8080:80 depends_on: - db db: image: postgres:13 environment: POSTGRES_PASSWORD: example volumes: - db_data:/var/lib/postgresql/data volumes: db_data:常用命令docker-compose up -d # 启动服务栈 docker-compose logs # 查看聚合日志 docker-compose down # 停止并清理3.2 性能监控方案容器监控是保障服务稳定的关键# 原生监控命令 docker stats --format table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}} # 推荐工具组合 - cAdvisor Prometheus Grafana - Docker内置指标端点http://localhost:9323/metrics4. 常见问题排错手册4.1 安装类问题问题现象Docker Desktop启动失败提示Virtualization support wasnt detected解决方案进入BIOS启用VT-x/AMD-v虚拟化支持Windows系统需开启Hyper-V和WSL2功能检查杀毒软件是否阻止虚拟化问题现象Linux权限错误Got permission denied while trying to connect to the Docker daemon解决方案# 将当前用户加入docker组 sudo usermod -aG docker $USER newgrp docker # 立即生效4.2 运行时问题问题现象容器端口绑定冲突Bind for 0.0.0.0:8080 failed: port is already allocated解决方案# 查找占用端口的进程 sudo lsof -i :8080 # 或者停止冲突容器 docker stop $(docker ps -q --filter publish8080)问题现象容器启动后立即退出Exit Code 137可能原因内存不足OOM Killer触发存储驱动异常基础镜像不兼容当前架构排查步骤检查docker日志journalctl -u docker.service测试增加内存限制docker run -m 1g ...验证镜像平台docker image inspect --format{{.Os}}/{{.Architecture}}
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →