标签: Docker

25 个内容

笔记(23)

本文深度解析Docker `--build-arg`(配合`ARG`)用于构建时变量注入,支持多环境镜像构建。多阶段构建需跨阶段重新声明ARG。主要方案:声明ARG、命令行注入;避坑用`--secret`传敏感信息、`ENV`持久运行时变量。

Elliot Yang·
20 浏览

文章对比Docker中npm与pnpm缓存机制:npm扁平化存储需解压拷贝I/O耗时,pnpm内容寻址+硬链接瞬时链接。最佳实践:npm挂载/root/.npm缓存;pnpm挂载/pnpm/store共享store,速度快一量级、节省空间。推荐pnpm优化容器构建。(148字符)

Elliot Yang·
51 浏览

**技术背景**:`docker-compose up` 默认不删除已运行的旧容器,即使配置文件中移除服务,导致孤儿容器残留。 **关键问题**:服务名称修改或删除定义后,旧容器继续存在。 **主要方案**:使用 `docker compose up -d --remove-orphans` 自动移除孤儿容器;或 `docker compose down --remove-orphans` 后重启。(128字符)

Elliot Yang·
71 浏览

文章介绍Docker“幽灵端口”占用问题:lsof/netstat查无进程,常因Docker网络残留、内核保留或WSL2 Hyper-V端口冲突。主要方案:1.强制rm容器+prune网络;2.重启Docker服务;3.WSL2检查/重置Windows保留端口范围。(148字符)

Elliot Yang·
111 浏览

文章介绍Docker构建/运行Python容器时pip缓存持久化方案,以加速包安装。**关键问题**:重复下载包耗时。**主要方案**:构建时用BuildKit `--mount=type=cache,target=/root/.cache/pip`;运行时(开发)用volumes挂载宿主机目录,如docker-compose中`./pip_cache:/root/.cache/pip`。注意路径、权限配置。(148字符)

Elliot Yang·
139 浏览

本文介绍了在 Windows 下使用 Docker Desktop 启用 CUDA 的完整方案。关键在于 WSL2、支持 WSL CUDA 的 NVIDIA 驱动、NVIDIA Container Toolkit 和 Docker Desktop WSL backend。文章提供了详细的安装配置步骤和常见问题排查,确保 GPU 在 Docker 容器中稳定可用。

Elliot Yang·
374 浏览

Docker Compose v2.20+新增`--wait`功能,用于在服务全部达到健康状态后才继续执行,常用于CI/CD。该功能依赖于服务配置的`healthcheck`,Compose会监控每个服务的健康状态,全部变为healthy才会继续,否则报错。

Elliot Yang·
107 浏览

Docker Compose文件中定义多服务时,选择性启动是常见需求。本文介绍了四种方法:直接指定服务名、使用profiles分组、override文件或环境变量修改启动行为、以及过滤服务名启动。推荐使用profiles进行分组管理。

Elliot Yang·
245 浏览

本文介绍了如何利用 Grafana Loki 和 Promtail 集中管理 Docker Compose 日志。核心问题是如何将 Docker 容器日志集成到 Grafana 中进行可视化。解决方案是使用 Promtail 收集 Docker 日志并推送到 Loki,再通过 Grafana 展示。关键步骤包括配置 Docker Compose 文件、Loki、Promtail,以及 Grafana 数据源。

Elliot Yang·
287 浏览

`docker build`和`docker buildx build`均用于构建Docker镜像,但后者是BuildKit的扩展,支持跨平台构建、并行构建和多种导出格式等高级功能。`docker build`适用于简单本地构建,而`docker buildx build`更适合复杂项目、CI/CD环境以及需要多平台支持的场景。

Elliot Yang·
539 浏览

Docker Compose服务名与公网域名冲突时,容器内访问域名会解析到容器自身而非公网。解决方案包括:修改服务名避开冲突、使用公网IP或修改/etc/hosts强制指定IP、或通过`extra_hosts`显式绑定域名和IP。

Elliot Yang·
230 浏览

本文深入解析了 Dockerfile 中 `EXPOSE` 指令的作用与原理。该指令主要用于声明容器监听端口,提供元数据,辅助容器自文档化和服务发现。生产实践中需结合安全策略、多阶段构建优化及集群环境协同。应权衡其在镜像自描述性与过度暴露端口之间的利弊,并关注服务网格带来的端口管理新趋势。

Elliot Yang·
181 浏览

本文探讨了在ARM64设备上运行x86_64代码的技术,核心问题是CPU架构差异导致二进制文件无法直接跨平台运行。解决方案是利用QEMU的用户态仿真和Linux内核的binfmt_misc机制实现透明仿真。同时,文章还讨论了Docker的多架构支持以及性能优化策略。

Elliot Yang·
193 浏览

本文深入探讨了系统工程师常用运维工具,涵盖 DNS 解析、Docker 容器化、网络诊断、存储管理、日志分析和身份管理。强调理解底层机制,并介绍了 eBPF、containerd 等前沿技术,助力问题解决和技术提升。

Elliot Yang·
106 浏览

本文剖析前端、后端、基础设施等多领域技术难题,如iOS Chrome路由、Monaco Editor优化、NestJS请求生命周期、Cookie同步、Docker日志、OpenWrt DNS、TS装饰器、Win键失效及Web标准,并提供实战方案和未来趋势展望。

Elliot Yang·
94 浏览

Alpine Linux采用APK包管理,强调轻量、确定构建与原子操作。生产环境推荐配置本地镜像源,优化Dockerfile,并进行安全加固,如签名验证。需注意musl libc兼容性,并适配Python生态。提供疑难问题排查和未来发展方向,并根据场景给出架构选型建议。

Elliot Yang·
190 浏览

深入探讨 Docker 镜像探查、多阶段构建、权限管理和构建参数等核心技术。涵盖静态分析镜像结构、BuildKit 缓存优化、UID/GID 映射、Linux 能力控制,以及 Docker Compose 的云原生演进,助力生产级实践。

Elliot Yang·
101 浏览

本文档总结了 Docker 常用操作。介绍了查看镜像文件内容、保持容器运行、多阶段构建优化镜像大小、Dockerfile条件判断、GitHub Actions集成、解决JavaScript内存溢出、区分ENV和ARG、安装docker-compose、容器中获取宿主机IP以及docker exec指定用户等技巧,提升Docker使用效率。

Elliot Yang·
93 浏览

本文介绍了在Alpine Linux中配置软件仓库的方法,包括编辑`/etc/apk/repositories`文件,添加或修改软件源URL,并更新索引。同时,提供了在Dockerfile中追加仓库地址的示例。此外,还解决了Alpine Linux中`pip`命令缺失的问题,通过安装`py3-pip`包来启用`pip`。

Elliot Yang·
109 浏览

本周报记录了以下技术要点: 1. 浏览器获取CPU核心数API:`navigator.hardwareConcurrency`。 2. HTML input file 标签的 multiple 属性控制多选。 3. 详解 JSON.stringify 的 replacer 参数,用于过滤、转换属性,限制深度等。 4. wget 命令基本用法。 5. pip 使用腾讯云镜像源加速及解决 `pip install` 未安装最新版本问题(依赖冲突)。 6. 解决 python slim 镜像 `source not found` 错误(更换shell或使用`.`)。

Elliot Yang·
100 浏览

本文介绍了如何通过Docker升级Postgres版本,从v14.5升级到v15.1,包括备份、修改镜像tag、恢复数据等步骤。同时,文章还介绍了Postgres中JSON和JSONB的区别及操作方法,以及创建只读用户和多字段排序的实现。强调不要依赖PostgreSQL 的默认排序.

Elliot Yang·
100 浏览

本文档是作者记录的问题和解决方案集锦。包括iOS Chrome下`history.pushState`导致toolbar消失的bug,monaco-editor禁用overflow-x滚动条的方法,Safari的cookie处理问题,Nest.js的header错误,OpenWrt的DNS解析,TypeScript装饰器问题,以及Docker日志无颜色、Windows键盘Win键失效等问题的解决办法。

Elliot Yang·
131 浏览

本文档整理了常用命令,包括DNS缓存刷新(Windows、macOS各版本),Docker镜像清理、构建运行、ENTRYPOINT/CMD区别,网络状态查看(netstat, traceroute, route),日志查看(head, tail, sed),磁盘空间信息(df)以及Linux文件权限管理(chmod, chown, 修改用户UID/GID)。

Elliot Yang·
92 浏览

动态(2)

E
Elliot Yang
公开

https://github.com/nacos-group/nacos-sdk-go/issues/316#issuecomment-1807895963

docker 启动的 nacos 使用 go nacos sdk 调用 GetConfig 报错解决。

read config from both server and cache fail, err=read cache file Config Encrypted Data Key failed. cause file doesn't exist

解决办法:把 8848,9848,9849 三个端口打开。

go
1client.GetConfig(vo.ConfigParam{
2		DataId: dataID,
3		Group:  group,
4	})
浏览:280点赞:0
E
Elliot Yang
公开

那些留在2023年的日子:五月

  • Docker 多阶段构建
  • TypeScript namespace 的妙用,在生成模版代码的时候可以免导入,直接使用 namespace 获取
  • BFS 和 DFS 的优缺点,fiber 为什么选择 DFS
浏览:154点赞:0