当前位置: 首页 > java >正文

Docker 容器与镜像核心操作命令大全(实战指南)

Docker 容器与镜像核心操作命令大全(实战指南)

摘要:本文全面整理 Docker 容器与镜像管理的高频操作命令,涵盖容器生命周期管理、镜像构建技巧、网络配置、文件挂载等场景,并附赠企业级高级用法。适用于开发、测试及生产环境的容器化运维。

一、容器操作命令

1.1 容器生命周期管理

命令功能说明常用参数
docker run创建并启动容器-d 后台运行
--name 指定容器名
--restart=always 自动重启
docker start启动已停止的容器容器ID/名称
docker stop优雅停止容器-t 超时时间(默认10秒)
docker restart重启容器

示例:后台运行Nginx并映射端口

docker run -d -p 80:80 --name my-nginx nginx:alpine

1.2 容器交互与调试

命令使用场景
docker exec -it <容器ID> sh进入容器Shell(Alpine系统)
docker exec -it <容器ID> /bin/bash进入容器Bash(Ubuntu/CentOS)
docker logs -f <容器ID>实时追踪日志(排错必备)

调试技巧

# 查看最近100行日志
docker logs --tail 100 <容器ID># 结合grep过滤关键字
docker logs <容器ID> | grep "ERROR"

1.3 文件与宿主机交互

操作类型命令示例
宿主机→容器docker cp host_file.txt <容器ID>:/app/data/
容器→宿主机docker cp <容器ID>:/var/log/app.log ./

二、镜像管理全攻略

2.1 镜像构建与打包

方式一:Dockerfile构建
# 标准构建(默认使用Dockerfile)
docker build -t myapp:v1.0 .# 指定自定义Dockerfile
docker build -f Dockerfile.prod -t myapp:prod .
方式二:容器转镜像(慎用!)
docker commit <容器ID> myapp:snapshot

注意:commit生成的镜像会包含容器层所有变更,可能导致体积臃肿,建议仅用于临时调试。

2.2 镜像导入导出

场景操作命令
导出为tar包docker save -o myapp.tar myapp:v1.0
从tar包加载docker load < myapp.tar

三、企业级高级配置

3.1 特权模式与设备挂载

# 启用特权模式(允许访问宿主机设备)
docker run -d --privileged myapp:prod# 挂载物理内存设备
docker run -v /dev/mem:/dev/mem myapp:monitor# 挂载系统信息(只读模式)
docker run -v /sys:/sys:ro -v /proc:/proc:ro myapp:diagnostic

3.2 Macvlan网络配置

# 创建Macvlan网络
docker network create -d macvlan \--subnet=192.168.14.0/24 \--gateway=192.168.14.1 \-o parent=eth0 \mg-macvlan# 运行容器并接入Macvlan
docker run -d --net=mg-macvlan --ip=192.168.14.20 myapp:network

应用场景:需要容器直接暴露在物理网络,获得独立IP地址。

四、安全与清理

4.1 镜像清理

# 删除未使用的镜像(悬空镜像)
docker image prune# 强制删除镜像(无视依赖)
docker rmi -f myapp:test

4.2 容器清理

# 删除已停止的容器
docker container prune# 批量删除所有容器
docker rm -f $(docker ps -aq)

五、实战问题排查指南

5.1 容器启动失败

排查步骤

  1. 检查日志:docker logs <容器ID>
  2. 验证端口冲突:netstat -tulnp | grep 8080
  3. 检查存储卷权限:ls -l /host/path

5.2 网络不通问题

诊断命令

# 进入容器测试外网
docker exec -it <容器ID> ping 8.8.8.8# 检查iptables规则
iptables -L -n -t nat

附录

  • Docker 官方文档
  • Docker Cheat Sheet

掌握这些命令组合,您已能应对90%的日常Docker运维场景。建议搭配Portainer等可视化工具提升管理效率!

如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!欲了解密码学知识,请订阅《密码学实战》专栏 → 密码学实战

http://www.xdnf.cn/news/251.html

相关文章:

  • Andorid 使用 libphonenumber-android 获取国际电话区号
  • 线上健身预约小程序源码介绍
  • CSS 包含块
  • 动手学深度学习:手语视频在NiN模型中的测试
  • C++——C++11常用语法总结
  • 嵌入式面试常见算法题解析:数组元素移动与二分查找
  • 在 Vue 3 项目中引入 js-cookie 库
  • 打造一个 AI 面试助手:输入岗位 + 技术栈 → 自动生成面试问题 + 标准答案 + 技术考点图谱
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(五级)真题
  • vue3学习笔记之属性绑定
  • 适合制作电磁铁的材料及特性
  • STL简介 + string【上】
  • 图像篡改检测算法
  • 【MATLAB代码例程】AOA与TOA结合的高精度平面地位,适用于四个基站的情况,附完整的代码
  • 万字解析TCP
  • 一次制作参考网杂志的阅读书源的实操经验总结(附书源)
  • 【无人机】电子速度控制器 (ESC) 驱动电机,常见的电调协议,PWM协议,Oneshot协议,DShot协议
  • Linux 网络接口 /sys/class/net/eth0 文件详解
  • 力扣面试150题--两数之和 和 快乐数
  • Java 2025:解锁未来5大技术趋势,Kotlin融合AI新篇
  • Server - 优雅的配置服务器 Bash 环境(.bashrc)
  • 无人机在农业中的应用与挑战!
  • 华为Pura X如何编辑图片、调整色调?图片编辑技巧、软件分享
  • git 出现 port 443 Connection timed out
  • 复现SCI图像增强(Toward fast, flexible, and robust low-light image enhancement.)
  • 【mysql】mysql疑难问题:实际场景解释什么是排它锁 当前读 快照读
  • YOLOv11改进:基于小波卷积WTConv的大感受野目标检测网络-
  • 使用 vcpkg 构建支持 HTTPS 的 libcurl 并解决常见链接错误
  • Java反射机制深度解析与应用案例
  • 第18周:对于ResNeXt-50算法的思考