可观测学堂

可观测问答

聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

如何把文件从宿主机复制到 Docker 容器? cover
概念指南

如何把文件从宿主机复制到 Docker 容器?

docker cp 宿主机路径 容器名:容器内路径 即可把文件拷入运行中的容器;目录整体拷贝用 源目录/. 写法;调试后可 docker commit 固化。本文给出用法与最佳实践。

如何一次性删除本地所有 Docker 镜像? cover
概念指南

如何一次性删除本地所有 Docker 镜像?

先删全部容器 docker rm -vf $(docker ps -aq),再删全部镜像 docker rmi -f $(docker images -aq);或一条 docker system prune -a 清掉未使用资源。

Dockerfile 中 CMD 和 ENTRYPOINT 有什么区别? cover
概念指南

Dockerfile 中 CMD 和 ENTRYPOINT 有什么区别?

ENTRYPOINT 定义容器的固定主程序,CMD 提供默认参数(可被 docker run 覆盖);二者常搭配使用:ENTRYPOINT 定命令、CMD 定默认参数。本文用实例讲透。

docker-compose 中 ports 和 expose 有什么区别? cover
概念指南

docker-compose 中 ports 和 expose 有什么区别?

ports 把容器端口发布到宿主机(外部可访问),expose 仅在 compose 内部网络向其他服务开放端口(不对外)。内部依赖用 expose,对外服务用 ports。

Docker 镜像(Image)和容器(Container)有什么区别? cover
概念指南

Docker 镜像(Image)和容器(Container)有什么区别?

镜像是只读的应用打包模板(代码+依赖+配置),容器是镜像的运行实例(带可写层与进程状态)。一个镜像可启动多个容器,容器依赖镜像而存在。本文用类比讲清二者关系。

Dockerfile 中 RUN 和 CMD 有什么区别? cover
概念指南

Dockerfile 中 RUN 和 CMD 有什么区别?

RUN 在构建镜像时执行(装包、建目录,结果固化进镜像层),CMD 指定容器启动时的默认命令(可被 docker run 覆盖)。构建期用 RUN,运行期用 CMD。

Dockerfile 中 COPY 和 ADD 命令有什么区别? cover
概念指南

Dockerfile 中 COPY 和 ADD 命令有什么区别?

COPY 只做本地文件拷贝;ADD 额外支持 URL 下载和 tar 自动解压,但行为不透明。官方最佳实践:默认用 COPY,确需自动解压才用 ADD,下载文件用 RUN+curl 替代。

Windows 上 Docker 报 /var/run/docker.sock 权限拒绝怎么办? cover
概念指南

Windows 上 Docker 报 /var/run/docker.sock 权限拒绝怎么办?

/var/run/docker.sock 是 Linux 的 Unix socket,Windows 上不存在;Windows 容器需用命名管道 npipe 或 Docker Remote API;Docker Desktop 里跑…

如何编辑正在运行的 Docker 容器内的文件? cover
概念指南

如何编辑正在运行的 Docker 容器内的文件?

docker exec -it 容器名 /bin/bash 进容器后用编辑器修改(容器常无编辑器,可先 apt install 或用 sed 改);不折腾的做法是 docker cp 拷出来改完再拷回去。注意改动不持久。

如何查看(探索)Docker 容器的文件系统? cover
概念指南

如何查看(探索)Docker 容器的文件系统?

运行中的容器用 docker exec -it 容器名 /bin/sh 进去看;不打扰进程用 docker export 导出文件系统快照;容器已停止用 docker cp 或 commit 成镜像再看。本文汇总各方法。

如何解决 Docker 的 permission denied 权限问题? cover
概念指南

如何解决 Docker 的 permission denied 权限问题?

非 root 用户跑 Docker 报权限拒绝,是因为不在 docker 用户组:sudo groupadd docker、sudo usermod -aG docker $USER,重新登录后免 sudo。本文给出完整步骤与安全提醒。

如何强制 Docker 不用缓存、完全重新构建镜像? cover
概念指南

如何强制 Docker 不用缓存、完全重新构建镜像?

docker build --no-cache 跳过全部层缓存从零构建;只想让某一步之后的缓存失效,可用 --build-arg 注入变化值或 docker compose build --no-cache。本文给出各场景做法。