如何选择docker基础镜像
# 如何选择docker基础镜像
因为Docker镜像是基于基础镜像来构建的,因此选择的基础镜像越高级,我们要做的底层工作就越少。
比如,如果构建一个Java应用的镜像,选择一个openjdk的镜像作为基础镜像比选择一个alpine镜像作为基础镜像要简单地多。
# 镜像官网
Docker镜像官网(Docker Hub): https://hub.docker.com
阿里云容器Hub:https://dev.aliyun.com
Google镜像(gcr.io):https://console.cloud.google.com/gcr/images/google-containers/GLOBAL (需要科学上网,主要为Kubernetes相关镜像)
# 操作系统基础镜像
比如你要从Linux操作系统基础镜像开始构建,可以参考下表来选择合适的基础镜像:
镜像名称 | 大小 | 使用场景 |
---|---|---|
busybox | 1.15M | 临时使用 |
alpine | 4.41M | 主要用于测试,也可用于生产环境 |
centos | 200M | 主要用于生产环境,支持CentOS/Red Hat,常用于追求稳定性的企业应用 |
utuntu | 81.1M | 主要用于生产环境,常用于人工智能计算和企业应用 |
debian | 101M | 主要用于生产环境 |
# busybox
描述:可以将busybox理解为一个超级简化版嵌入式Linux系统。
官网:https://www.busybox.net/
镜像:https://hub.docker.com/_/busybox/
包管理命令:apk, lbu
包管理文档:https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management
# Alpine
描述:Alpine是一个面向安全的、轻量级的Linux系统,基于musl libc和busybox。
官网:https://www.alpinelinux.org/
镜像:https://hub.docker.com/_/alpine/
包管理命令:apk, lbu
包管理文档:https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management
# CentOS
描述:可以理解CentOS是RedHat的社区版
官网:https://www.centos.org/
镜像:https://hub.docker.com/_/centos/
包管理命令:yum, rpm
# Ubuntu
描述:另一个非常出色的Linux发行版
官网:http://www.ubuntu.com/
镜像:https://hub.docker.com/_/ubuntu/
包管理命令:apt-get, dpkg
# Debian
描述:另一个非常出色的Linux发行版
官网:https://www.debian.org/
镜像:https://hub.docker.com/_/debian/
包管理命令:apt-get, dpkg
# 编程语言基础镜像
# java基础镜像
https://hub.docker.com/_/openjdk/
# python基础镜像
https://hub.docker.com/_/python/
# nodejs基础镜像
https://hub.docker.com/_/node/
# 应用基础镜像
# nginx基础镜像
https://hub.docker.com/_/nginx/
# tomcat基础镜像
https://hub.docker.com/_/tomcat/
# jetty基础镜像
https://hub.docker.com/_/jetty/
# 其它基础镜像例子
# maven基础镜像
https://hub.docker.com/_/maven/
# jenkins基础镜像
https://hub.docker.com/r/jenkins/jenkins/
# gitlab基础镜像
https://hub.docker.com/r/gitlab/gitlab-ce/