If my guess is right, you forgot to mention that these images are Jenkins docker images and not just JNLP which is “Java Network Launch Protocol” Docker
I quote:
Warning! This image used to be published as jenkinsci/jnlp-slave and jenkins/jnlp-slave. These images are deprecated, use jenkins/inbound-agent.
so one mystery is solved. “jnlp-slave” is deprecated. You can read about the renaming here:
If you download the inbound agent image (jenkins/inbound-agent:alpine-jdk11) and jenkins/jnlp-agent-docker you can compare their image history like this:
diff --color \
<(docker history jenkins/inbound-agent:alpine-jdk11 --no-trunc --format '{{.CreatedBy}}') \
<(docker history jenkins/jnlp-agent-docker:latest --no-trunc --format '{{.CreatedBy}}')
you can see that jnlp-agent-docker is an inbound-agent which contains extra layers to install Docker cli and Docker Compose:
> /bin/sh -c #(nop) USER jenkins
> |2 DOCKER_COMPOSE_VERSION=1.21.0 DOCKER_VERSION=18.03.0-ce /bin/sh -c touch /debug-flag
> |2 DOCKER_COMPOSE_VERSION=1.21.0 DOCKER_VERSION=18.03.0-ce /bin/sh -c curl -fsSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
> |2 DOCKER_COMPOSE_VERSION=1.21.0 DOCKER_VERSION=18.03.0-ce /bin/sh -c curl -fsSL https://download.docker.com/linux/static/stable/`uname -m`/docker-$DOCKER_VERSION.tgz | tar --strip-components=1 -xz -C /usr/local/bin docker/docker
> /bin/sh -c #(nop) ARG DOCKER_COMPOSE_VERSION=1.21.0
> /bin/sh -c #(nop) ARG DOCKER_VERSION=18.03.0-ce
> /bin/sh -c apk update && apk add -u libcurl curl
> /bin/sh -c #(nop) USER root