小吴同学
善良比聪明更重要
Docker 系列(四十八):Dockerfile 最佳实践 Docker 系列(四十八):Dockerfile 最佳实践
本篇整理编写 Dockerfile 的一些最佳实践,帮助构建出更精简、更易维护的镜像。 一般性守则通过 Dockerfile 构建的镜像所启动的容器应该尽可能短暂(生命周期短)。「短暂」意味着可以停止和销毁容器,并且创建一个新容器并部署好所
2023-07-11
Docker 系列(四十七):常见问题总结 Docker 系列(四十七):常见问题总结
本篇整理了 Docker 使用过程中常见的一些问题与解决办法,涵盖镜像、容器、网络、存储与配置等方面,便于快速查阅。 如何清理临时文件?答:可以使用 docker image prune 命令。 如何查看镜像支持的环境变量?答:可以使用 d
2023-07-04
Docker 系列(四十六):迁移 Docker 存储目录 Docker 系列(四十六):迁移 Docker 存储目录
Docker 的存储位置默认会装在 /var/lib/docker 下面,而一般根目录挂载的盘会比较小(我碰到的)。如果生产上用 Docker,但是 Docker 的存储目录没有改到挂载盘的话,会导致服务器磁盘空间持续增大,到警告上限。因此
2023-06-27
Docker 系列(四十五):Device or resource busy 排错 Docker 系列(四十五):Device or resource busy 排错
在清理 Docker 数据目录、准备重装时执行了 rm -rf /var/lib/docker,结果报错 Device or resource busy。记录一下原因与解决过程。 现象执行删除命令: rm -rf /var/lib/dock
2023-06-20
Docker 系列(四十四):容器诡异退出的 137 码 Docker 系列(四十四):容器诡异退出的 137 码
最近发生了一件诡异的事:跑在一台测试服务器上的一个 Tomcat 的 Docker 容器隔几天都会以 ExitCode: 137 退出。最近几天一直很平稳,没有一个容器退出过,直到今天早上 10 点左右,这台机上所有 Tomcat 容器都一
2023-06-13
Docker 系列(四十三):Nginx 容器实战 Docker 系列(四十三):Nginx 容器实战
Nginx 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。官方在 Docker Hub 上维护了官方镜像仓库,提供了 Nginx 1.0 ~ 1.19.x 各个版本的镜像。 启动静态页
2023-06-06
Docker 系列(四十二):X86 平台使用容器交叉编译 Docker 系列(四十二):X86 平台使用容器交叉编译
本文针对在 x86 平台(Ubuntu 系统)如何交叉编译其他平台程序给出思路和解决方案,实践性较强。 一、思路目的:在 x86 上用 Docker 方式交叉编译 arm 平台程序。有时项目庞大,依赖库之多,以至于用新标准,或 boost
2023-05-30
Docker 系列(四十一):Docker Compose Docker 系列(四十一):Docker Compose
Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速地部署分布式应用。本文将介绍 Compose 项目的定位以及安装方式。 Compose 简介Compose 定位为「定义和运行多容器 Docker 应
2023-05-23
Docker 系列(四十):限制容器可用的 CPU Docker 系列(四十):限制容器可用的 CPU
默认情况下,容器可以使用的宿主机 CPU 资源是不受限制的。和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难。本文将介绍
2023-05-16
Docker 系列(三十九):控制组(Cgroups) Docker 系列(三十九):控制组(Cgroups)
控制组(cgroups)是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时对系统资源的竞争。 控制组技术最早是由 Google 的程序员在 2006 年提出,L
2023-05-09
Docker 系列(三十八):命名空间(Namespaces) Docker 系列(三十八):命名空间(Namespaces)
命名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。 PID 命名空间不同用户的进程就是通过 pid 命名空间隔离开的,且不同命名
2023-05-02
Docker 系列(三十七):Docker 的底层实现 Docker 系列(三十七):Docker 的底层实现
Docker 底层的核心技术包括 Linux 上的命名空间(Namespaces)、控制组(Control groups)、Union 文件系统(Union file systems)和容器格式(Container format)。 传统的
2023-04-25
7 / 24