docker - dockerhub.com 的 docker 基础镜像中的“ADD file ... in /”是什么意思
问题描述
我正在尝试在Dockerhub找到合适的基础镜像,但我不确定带有标签的镜像是否Nvidia/cuda:11.1.1-base-ubuntu20.04
包含ubuntu20.04
环境。如果答案是肯定的,为什么我ubuntu
在它的Dockerfile
. 以及有什么用ADD file ...
解决方案
我假设您正在谈论这个 cuda 图像:https ://hub.docker.com/layers/nvidia/cuda/11.1.1-devel-ubuntu20.04/images/sha256-2b02390a7988c592578466083a1353fa8bb815167f05c44282014c60044352c6?context=explo
您看不到对父图像的引用,因为FROM
不是图层。在 Dockerhub 中,您只能看到层。
该FROM
命令包括基础映像中的所有层。您正在考虑的第一层包含在 Ubuntu 映像中。
你可以在这里找到模板Dockerfile
:https ://gitlab.com/nvidia/container-images/cuda/-/blob/master/templates/ubuntu/base-dockerfile.j2
然后你可以在dockerhub中看到第6层(LABEL)和第7层(RUN)对应的模板层。以上所有图层都包含在基础(父)图像中
LABEL maintainer "NVIDIA CORPORATION <cudatools@nvidia.com>"
RUN apt-get update && apt-get install -y --no-install-recommends \
{% if cuda.os.version in ["18.04", "20.04"] %}
gnupg2 curl ca-certificates && \
curl -fsSL {{ cuda.repo_url }}/7fa2af80.pub | apt-key add - && \
echo "deb {{ cuda.repo_url }} /" > /etc/apt/sources.list.d/cuda.list && \
{% if cuda.use_ml_repo %}
echo "deb {{ cuda.ml_repo_url }} /" > /etc/apt/sources.list.d/nvidia-ml.list && \
{% endif %}
apt-get purge --autoremove -y curl \
{% elif cuda.os.version == "16.04" %}
ca-certificates apt-transport-https gnupg-curl && \
NVIDIA_GPGKEY_SUM=d1be581509378368edeec8c1eb2958702feedf3bc3d17011adbf24efacce4ab5 && \
NVIDIA_GPGKEY_FPR=ae09fe4bbd223a84b2ccfce3f60f4b3d7fa2af80 && \
apt-key adv --fetch-keys {{ cuda.repo_url }}/7fa2af80.pub && \
apt-key adv --export --no-emit-version -a $NVIDIA_GPGKEY_FPR | tail -n +5 > cudasign.pub && \
echo "$NVIDIA_GPGKEY_SUM cudasign.pub" | sha256sum -c --strict - && rm cudasign.pub && \
echo "deb {{ cuda.repo_url }} /" > /etc/apt/sources.list.d/cuda.list && \
{% if cuda.use_ml_repo %}
echo "deb {{ cuda.ml_repo_url }} /" > /etc/apt/sources.list.d/nvidia-ml.list && \
{% endif %}
apt-get purge --auto-remove -y gnupg-curl \
{% endif %}
&& rm -rf /var/lib/apt/lists/*
推荐阅读
- database - 我可以以哪种格式存储golang的时间。在scylladb中的时间?
- javascript - JSONArray 到 JavaScript 中的逗号分隔字符串
- node.js - 计算 Node.js Socket.IO 应用程序中的连接用户数
- php - WooCommerce:在挂钩函数中获取产品变体自定义字段值
- r - 在 R 中映射南极洲
- c - 为什么 Visual Studio Code 无法编译我的 C 代码?
- node.js - 我想返回帖子数组,但我得到了一个空数组
- javascript - JavaScript 代理:简单的日志函数,将字符串参数代理到 console.log()
- firebase - getter 'uid' 在颤振中被调用为 null
- python - Python 元音常量