参考文章:[Docker 技术入门与实战]
目前常用的 Linux 发行版主要包括 Debian/Ubuntu 系列和 CentOS/Fedora 系列。前者以自带软件包版本较新而出名;后者则宣称运行更稳定一些。同时,社区还推出了精简版的 Busybox
和 Alphine
。
BusyBox
BusyBox 是一个集成了一百多个最常用 Linux 命令(如 cat
, echo
, grep
, mount
, telnet
等)的精简工具箱,它只有不到 2MB 大小,被誉为 “Linux 系统的瑞士军刀”。BusyBox
可以运行于多款 POSIX
环境的操作系统中,如 Linux(包括 Android Q),Hurd,FreeBSD 等。
获取 BusyBox 官方镜像
在 Docker Hub 中搜索 busybox 相关的镜像,如下所示:
1 | $ docker search busybox |
可以看到最受欢迎的镜像同时带有 OFFICIAL 标记,说明它是官方镜像。可以使用 docker pull
指令下载镜像 busybox:latest
1 | docker pull busybox:latest |
下载后,可以看到 busybox 镜像 只有 1.2MB
1 | $ docker images |
运行 busybox
启动一个 busybox
镜像,并在容器中执行 grep
命令:
1 | $ docker run -it busybox |
BusyBox 相关资源
BusyBox 的相关资源如下:
- BusyBox 官网:
https://busybox.net
- BusyBox 官方仓库:
https://git.busybox.net/busybox/
- BusyBox 官方镜像:
https://hub.docker.com/_/busybox/
- BusyBox 官方镜像仓库:
https://github.com/docker-library/busybox
Alpine
Alpine
操作系统是一个面向安全的轻型 Linux 发行版,关注安全,性能和资源效能。不同于其他发行版,Alpine
采用了 musl libc
和 Busybox
以减小系统的体积和运行时资源消耗,比 BusyBox
功能上更完善。在保持瘦身的同时,Alpine 还提供了包管理工具 apk 查询和安装软件包。
Alpine Docker 镜像继承了 Alpine Linux 发行版的这些优势。相比于其他镜像,它的容量非常小,仅仅只有 5MB 左右(Ubuntu 系列镜像接近 200MB)。官方镜像来自 docker-alpine
项目。
目前 Docker 官方非常推荐使用 Alpine 作为默认的基础镜像环境,这可以带来多个优势,如镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。
- 下面是 官方镜像的大小比较,可以看出 Alpine 镜像的显著优势:
1 | $ docker images |
获取并使用 Alpine 官方镜像
由于镜像很小,下载时间几乎可以忽略,读者可以使用 docker [container] run
指令直接运行一个 Alpine 容器,并指定运行的指令,如:
1 | $ docker run alpine echo '123' |
迁移至 Alpine 基础镜像
目前,大部分 Docker 官方镜像都已经支持 Alpine 作为基础镜像,可以很容器进行迁移。
例如:
1 | ubuntu/debian -> alpine |
- 另外,如果使用
alpine
镜像,安装软件包时可以使用apk
工具,例如:
1 | apk add --no-cache <package> |
Alpine 中软件安装包的名字可能会与其他发行版有所不同,可以在 https://pkgs.alpinelinux.org/packages
网站中搜索并确定安装包名称。
- 如果需要的安装包不在索引内,但是在测试或社区索引中。那么首先需要更新仓库列表,如下所示:
1 | echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories |
Alpine 相关的资源
Alpine 的相关资源如下:
- Alpine 官网:
https://alpinelinux.org/
- Alpine 官方仓库:
https://github.com/alpinelinux
- Alpine 官方镜像:
https://hub.docker.com/_/alpine/
- Alpine 官方镜像仓库:
https://github.com/gliderlabs/docker-alpine
Debian/Ubuntu
Debian 和 Ubuntu 都是目前较为流行的 Debian 系的服务器操作系统,十分适合研发场景。Docker Hub 上提供了它们的官方镜像,国内各大容器云服务都提供了完整的支持。
Debian/Ubuntu 官方镜像使用
- 我们可以使用
docker search
搜索 Docker Hub,查找 Debian 镜像
1 | $ docker search debian |
- 使用
docker run
命令直接运行 Debian 镜像
1 | $ docker run -it debian bash |
- 可以将 Debian 镜像作为基础镜像来构建自定义镜像。如果需要进行本地化配置,如
UTF-8
支持,可参考:
1 | RUN apt-get update && apt-get install -y locals && rm -rf /var/lib/apt/lists/* \ |
Debian 的相关资源
Debian 的相关资源如下:
- Debian 官网:
https://www.debian.org/
- Debian 官方镜像:
https://hub.docker.com/_/debian/
Ubuntu 相关资源
- Ubuntu 官网:
http://www.ubuntu.org.cn/global
- Ubuntu 官方镜像:
https://hub.docker.com/_/ubuntu/
CentOS/Fedora
CentOS 系统简介以及使用
CentOS 和 Fedora 都是基于 RedHat
的 Linux 发行版。CentOS 是目前企业级服务器的常用操作系统;Fedora 则主要面向个人桌面用户。
使用 docker search
命令搜索标星至少为 50 的 CentOS 相关的镜像
1 | $ docker search --filter stars=50 centos |
使用 docker run
直接运行最新的 CentOS 镜像,并登陆 bash
1 | ]$ docker run -it centos bash |
Fedora 系统简介以及使用
Fedora 是由 Fedora Project 社区开发,Red Hat 公司赞助的 Linux 发行版。它的目标是创建一套新颖,多功能并且自由和开源的操作系统。
使用 docker search 命令搜索标星至少为 50 的 Fedora 相关镜像,结果如下:
1 | $ docker search --filter stars=50 fedora |
使用 docker run
命令直接运行 Fedora 官方镜像,并登陆 bash:
1 | $ docker run -it fedora bash |
Fedora 的相关资源
Fedora 的相关资源如下:
- Fedora 官网:
https://getfedora.org/
- Fedora 官方镜像:
https://hub.docker.com/_/fedora/
CentOS 的相关资源如下:
- CentOS 官网:
https://www.centos.org/
- CentOS 官方镜像:
https://hub.docker.com/_/centos/