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

对于docker相关的理解

这个之前总结过了
但是,还是那个,如果说一个开发者会使用docker
那么他到底需要理解,和掌握docker的哪些领域和命令。

简单理解一下,这个就是一个塑料袋。
把软件,和软件产生的数据。
直接装到一起。
然后
一键启动软件
一键打包软件。

第一阶段:

前端的朋友理解npm包
后端的理解maven
其实他们本质上都是一样的。
有一个大的软件包仓库。
我们在本地config文件夹,配置一下。
然后执行命令,从远方的那个代码仓库里,拉出软件包。拉倒本地。

这个阶段,就有两个层面要理解了,
1.配置本地的软件包,怎么配置,在哪里配置,配置什么东西
2.要使用哪些命令。

第二阶段:
在使用dokcer的时候,网络怎么配置

在使用docker的时候,产生的数据,怎么处置

在使用docker的运行情况怎么样

doker在运行时候,应该配置什么参数

你的“塑料袋”比喻很生动——把软件和它的运行环境、依赖甚至部分数据都打包进去,隔离又便携。

基于这个理解,一个会使用Docker的开发者,并不需要背所有命令,而是需要掌握几个核心领域和对应的关键命令。我们按你分的两个阶段,再补上第三个实用阶段。


第一阶段:基础操作 —— 拉包、运行、打包

对应你的“npm/maven”类比,核心是理解镜像(软件包)和容器(运行中的软件实例)。

1. 配置层面(在哪里配置什么)

  • Dockerfile:用来构建镜像的配方文件。你需要会写它来定义你的软件环境(比如FROM node:18COPY . .RUN npm install)。
  • docker-compose.yml:用来一键启动多个关联容器的配置(比如前端+后端+数据库)。大部分生产场景用这个。
  • ~/.docker/config.json:本地登录远程仓库的认证信息(很少手动改)。

2. 核心命令(需要掌握)

领域命令作用
拉取镜像docker pull nginx从仓库(如Docker Hub)下载镜像到本地
查看本地镜像docker images看有哪些软件包已下载
运行容器docker run -d -p 8080:80 nginx-d后台运行,-p主机端口:容器端口
列出运行中的容器docker ps查看当前运行的“塑料袋”
列出所有容器docker ps -a包括已停止的
停止/启动/重启docker stop/start/restart 容器ID控制生命周期
删除容器docker rm 容器ID移除停止的容器
删除镜像docker rmi 镜像名移除本地镜像(包)
查看日志docker logs 容器ID看软件输出,调试必备
进入容器内部docker exec -it 容器ID /bin/bash像SSH进到塑料袋里检查
构建镜像docker build -t myapp .根据Dockerfile打包
推送镜像docker push myusername/myapp上传到仓库(类似npm publish)

第一阶段掌握标志:能写一个Dockerfile,把自己写的网页/服务打包成镜像,然后用docker run跑起来,能从浏览器访问到。


第二阶段:网络、数据、运行状态

你提的三点非常关键,这是Docker从“玩具”走向“可用”的分水岭。

1. 网络怎么配置
  • 理解:每个容器有独立IP,默认可以互相访问。但你更需要的是端口映射(主机到容器)和容器间通信(自定义网络)。
  • 关键命令
    dockernetwork create mynet# 创建自定义网络dockerrun--network=mynet--name=app1...# 容器加入网络dockerrun--network=mynet--name=app2...# 然后 app2 中可以直接 ping app1
  • 常用网络命令docker network lsdocker network inspect
2. 产生的数据怎么处置
  • 理解:容器删了,里面的数据就没了(像一次性塑料袋)。要保留数据,用卷(volume)绑定挂载
  • 关键命令
    dockervolume create mydata# 创建卷dockerrun-vmydata:/app/data...# 使用卷(Docker管理路径)dockerrun-v/host/path:/app/data...# 绑定挂载(主机上的目录)
  • 常用数据命令docker volume lsdocker volume inspect
3. 运行情况监控
  • 理解:看容器用了多少CPU/内存,看日志,看进程。
  • 关键命令
    dockerstats# 实时资源监控dockertop容器ID# 看容器内的进程dockerlogs-f容器ID# 实时跟踪日志(-f 是 follow)dockerinspect 容器ID# 看容器的所有详细信息(网络、卷、配置等)
4. 运行时应配置什么参数
  • 不只是-p-v,还有:
    • -e:环境变量(如-e MYSQL_ROOT_PASSWORD=123
    • --restart=always:自动重启(宕机了拉起来)
    • --cpus="1.5"--memory="1g":限制资源
    • --name:给容器起名,方便管理

第二阶段掌握标志:能用docker-compose.yml一次启动Nginx + PHP + MySQL,数据存在卷里,重启后还在,能看懂docker stats


第三阶段(补充):实用场景的必备理解

一个真正在用Docker的开发者,还会遇到这些问题:

场景理解和命令
清理空间docker system prune -a— 删除所有停止的容器、未用的镜像、网络、构建缓存
查看磁盘占用docker system df
复制文件进出容器docker cp 文件 容器ID:/路径或反过来
临时运行一个工具docker run --rm -it alpine sh--rm用完自动删,-it交互式
查看两个镜像的区别docker diff 容器ID— 容器启动后改动了哪些文件
把现有容器保存为新镜像docker commit 容器ID mynewimage— 不推荐,要用Dockerfile

总结:一个“会使用Docker的开发者”的最低知识图谱

  • 核心认知:镜像(类) vs 容器(实例);卷(持久化) vs 容器(临时);端口映射;自定义网络。
  • 必须手打的命令(约15个):pull, images, run, ps, stop, rm, rmi, logs, exec, build, push, network, volume, stats, system prune
  • 必须会写的文件:Dockerfile(基础版),docker-compose.yml(常见版)
  • 不用背但要懂的概念:仓库/Tag、桥接网络、挂载类型(volume/bind)、entrypoint vs CMD
http://www.cnnetsun.cn/news/2137851.html

相关文章:

  • 5分钟免费解锁PotPlayer实时字幕翻译:让外语视频秒变中文的终极教程
  • 量子优化新突破:约束感知QAOA与汉明权重算子
  • ColabFold蛋白质结构预测实战:从环境配置到性能调优的完整指南
  • LayerDivider:用AI智能分层技术,5分钟将插画变可编辑PSD图层
  • K8s调度策略实战:如何用Binpack和Spread优化你的集群资源利用率
  • 2026 年产品经理必备语音转文字工具:6 款产品需求沟通场景深度评测
  • 熵减开发悖论:软件测试视角下的审视与突围
  • 裸奇点计算禁忌:软件测试领域不可触及的终极边界
  • FF14过场动画跳过插件:3分钟快速配置完全指南
  • Win11Debloat:3步彻底优化Windows系统性能与隐私设置
  • ARM C库函数依赖与定制化实现解析
  • 从故障工单到OEE监控,TPM实战体系拆解与落地参数
  • 深度解析:Win11Debloat的Windows系统优化完整实践
  • 别把 async 当银弹:在 CPU 密集型图像处理服务中,优秀工程师为什么要敢于说“不”
  • Python 数据库优化:索引与查询
  • 计算机专业生打 CTF 全流程详解:零基础小白快速入门、赛事高效拿分、实战踩坑避坑完整版手册
  • SUSE以“数字主权“为旗帜,却难掩60亿美元出售传闻的尴尬
  • 孩子对英语没兴趣?KISSABC“玩一玩”+“配音秀”让孩子主动求学
  • Pixelle-Video:三步实现AI全自动短视频生成的专业开发指南
  • 基于最小方差无畸变响应滤波器组的谱相关密度估计(Matlab代码实现)
  • Kubernetes Pod启动耗时仅剩113ms,但函数首请求仍卡480ms?:Java Agent无侵入式类预加载技术首次开源解析
  • 【Java农业物联网平台安全红线】:国密SM4加密+边缘可信计算+等保2.0三级合规设计(附工信部认证代码模板)
  • 航空产业链头部企业齐聚 将共赴2026中国航空维修制造及航材供应链展览会
  • IAP固件升级实验流程
  • 从RTSP到Web浏览器:手把手教你用FFmpeg+Nginx搭建低延迟视频流媒体服务器(SpringBoot+Vue3调用示例)
  • 别再为ImageNet下载发愁了!3GB的MiniImageNet快速上手教程(附PyTorch完整代码)
  • 设备负载不均衡,部分设备闲置部分超负荷怎么办? 2026全场景智能调度与实在Agent实战指南
  • **发散创新:基于Python与卫星互联网的轻量化边缘计算任务调度系统设计实践**在当前全球
  • 【RabbitMQ】RPC 通信(使用案例)
  • 保姆级视频教程| 空间转录组分析手册(基于Seurat)