Carga de imágenes personalizadas de Docker en Alibaba Cloud

Alpine hace espejo jdk

Introducción a alpine Linux
1. Alpine Linux es una distribución ligera de Linux, que es diferente de las distribuciones habituales de Linux Alpine usa musl libc y
BusyBox para reducir el tamaño del sistema y el consumo de recursos durante el tiempo de ejecución.
2. Alpine Linux proporciona su propia herramienta de administración de paquetes: apk (nota: apt-get en ubuntu), podemos consultar la información del paquete a través de https://pkgs.alpinelinux.org/packages
3. La imagen de Alpine Docker hereda Alpine Linux Estas ventajas de la distribución, en comparación con otras imágenes de Docker de Linux, su tamaño es muy pequeño.
Compare las imágenes básicas sin comprimir de uso común (consulte la pestaña actual: última):
Alpine-4.8MB
centos-124.8 MB
Debian-125.1MB
Centos-196MB
4. Se recomienda utilizar la versión 3.10.0 de Alpine Linux, que también es la primera versión de la serie estable v3.10
alpine: 3.10

Haciendo un espejo JDK8 basado en alpine
# 1. Descargue el espejo
docker pull alpine: último

# 2. Crear y editar dockerfile
touch Dockerfile
vi Dockerfile
Nota 1: contenido de Dockerfile

#1.指定基础镜像,并且必须是第一条指令
FROM alpine:latest
#FROM alpine:3.10

#2.指明该镜像的作者和其电子邮件
MAINTAINER xyz "[email protected]"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /xieminglu_docker/jdk

#4.将一些安装包复制到镜像中,语法:ADD/COPY <src>... <dest>
## ADD与COPY的区别:ADD复制并解压,COPY仅复制
ADD jdk-8u221-linux-x64.tar.gz /xieminglu_docker/jdk/
## glibc安装包如果从网络下载速度实在是太慢了,先提前下载复制到镜像中
COPY glibc-2.29-r0.apk /xieminglu_docker/jdk/
COPY glibc-bin-2.29-r0.apk /xieminglu_docker/jdk/
COPY glibc-i18n-2.29-r0.apk /xieminglu_docker/jdk/

#5.更新Alpine的软件源为阿里云,因为从默认官源拉取实在太慢了
RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && \
    echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories
RUN apk update && apk upgrade

#6.运行指定的命令
## Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get,
## 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker
## wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget
## ca-certificates证书服务,是安装glibc前置依赖
RUN apk --no-cache add ca-certificates wget \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && apk add glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk \
    && rm -rf /var/cache/apk/* glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk

#7.配置环境变量
ENV JAVA_HOME=/xieminglu_docker/jdk/jdk1.8.0_221
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令
#CMD ["java","-version"]

Inserte la descripción de la imagen aquí
# 3. Ejecute dockerfile para crear un espejo
docker build -t jdk8: v2.0.

# 4. Cree e inicie el contenedor
docker create -it jdk8: v2.0
docker start container ID

# 5. Ingrese el contenedor
docker exec -it container ID / bin / sh

Nota 1: Finalmente, sh en lugar de bash
también se puede iniciar directamente e ingresar el contenedor
docker run -it --name myjdk container ID

# 6. Prueba jdk
java -version

Nota 1: docker exec -it container ID / bin / sh usa la cuenta actual (es decir, root) para iniciar sesión de forma predeterminada. Puede ver el nombre de usuario actual mediante el comando whoami, y
también puede cambiar a otras cuentas mediante el siguiente comando
docker exec -it --user root < ID de contenedor> / bin / sh

Nota 2: La imagen de openjdk: 8-jdk-alpine es la misma que la imagen que creamos nosotros mismos, excepto que el JDK ha sido más delgado y de menor tamaño
. Puedes descargarlo tú mismo y crear un contenedor para probar

Nota 3: el tamaño del espejo después de la producción final es de aproximadamente 400 M

Alpine hace espejo jre

La imagen básica más pequeña de JRE del contenedor Docker
# 1. Primero descarga jre, la
dirección de descarga es https://www.java.com/en/download/manual.jsp, probablemente los
datos finales descargados de 77M son: / jre-8u221-linux -x64.tar.gz

# 2.subir rz a centos, eliminar archivos inútiles y volver a comprimir

  #解压
  tar -zxvf jre-8u221-linux-x64.tar.gz
  #查看jre大小(瘦身前230M)
  du -sh jre1.8.0_221
  #进入jre目录,并执行瘦身命令
  cd jre1.8.0_221
  #执行瘦身命令(命令见资料,瘦身后111M)
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html \
#删除其他无用文件
rm -rf lib/plugin.jar \
lib/ext/jfxrt.jar \
bin/javaws \
lib/javaws.jar \
lib/desktop \
plugin \
lib/deploy* \
lib/*javafx* \
lib/*jfx* \
lib/amd64/libdecora_sse.so \
lib/amd64/libprism_*.so \
lib/amd64/libfxplugins.so \
lib/amd64/libglass.so \
lib/amd64/libgstreamer-lite.so \
lib/amd64/libjavafx*.so \
lib/amd64/libjfx*.so

#Vuelva al directorio de nivel superior, vuelva a empaquetar jre
cd… /
tar -zcvf jre1.8.0_221.tar.gz jre1.8.0_221

# 3. Crear y editar dockerfile
Nota 1: El contenido de dockerfile es el siguiente

#1.指定基础镜像,并且必须是第一条指令
FROM alpine:latest
#FROM alpine:3.10

#2.指明该镜像的作者和其电子邮件
MAINTAINER xyz "[email protected]"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /xieminglu_docker/jdk

#4.将一些安装包复制到镜像中,语法:ADD/COPY <src>... <dest>
## ADD与COPY的区别:ADD复制并解压,COPY仅复制
## 注意~~~上传的瘦身后的jre
ADD jre1.8.0_221.tar.gz /xieminglu_docker/jdk/
## glibc安装包如果从网络下载速度实在是太慢了,先提前下载复制到镜像中
COPY glibc-2.29-r0.apk /xieminglu_docker/jdk/
COPY glibc-bin-2.29-r0.apk /xieminglu_docker/jdk/
COPY glibc-i18n-2.29-r0.apk /xieminglu_docker/jdk/

#5.更新Alpine的软件源为阿里云,因为从默认官源拉取实在太慢了
RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && \
    echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories
RUN apk update && apk upgrade

#6.运行指定的命令
## Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get,
## 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker
## wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget
## ca-certificates证书服务,是安装glibc前置依赖
RUN apk --no-cache add ca-certificates wget \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && apk add glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk \
    && rm -rf /var/cache/apk/* glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk

#7.配置环境变量
## 注意~~~没有jdk啦,直接指向jre
ENV JAVA_HOME=/xieminglu_docker/jdk/jre1.8.0_221
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令
#CMD ["java","-version"]

# 4. Ejecute dockerfile para crear un espejo
docker build -t jdk8: v3.0.

# 5. Cree e inicie el contenedor
docker create -it jdk8: v3.0
docker start container ID

# 6. Ingrese el contenedor
docker exec -it container ID / bin / sh

# 7. Prueba jdk
java -version

Nota 1: La imagen de openjdk: 8-jdk-alpine es la misma que la imagen creada por nosotros mismos, excepto que el JDK ha sido más delgado y más pequeño.
Además, hay una cierta diferencia entre openjdk y jdk. Puedes leer la información "14 Análisis de Diferencias entre OpenJDK y JDK- 简 书 .mht" para averiguar

Nota 2: Alpine crea JDK8 en espejo debido al problema de la zona horaria. Puede usar el comando de vista de zona horaria para echar un vistazo

Los resultados de las tres versiones de jdk mirroring son los siguientes:
V1.0: fabricado por centos7 + jdk1.8 y fabricado por
V2.0: fabricado por alpine3.10 + jdk1.8 y fabricado por
V3.0: fabricado por alpine3.10 + jre1.8 + comando thinning Volverse
Inserte la descripción de la imagen aquí

Cargar la imagen de Docker en Alibaba Cloud

Cargue la imagen de Docker en Alibaba Cloud (o descargue la imagen de Ayun )
Preparación preliminar
# 1. Registre una cuenta de
Alibaba Cloud Enlace al sitio web oficial de Alibaba Cloud: https://dev.aliyun.com
# 2. Inicie sesión en la cuenta
# 3. Configure el acelerador de Docker
Nota: busque "servicio de duplicación de contenedores"
n.º 4. Cree el espacio de nombres del almacén
duplicado
. Por ejemplo: xieminglu n.º 5. Cree un almacén duplicado (cuando cree un almacén duplicado, vincule un sitio web de alojamiento de código, como github)
Por ejemplo: prueba de imagen

push (推) Mirror
# 1. Inicie sesión en el almacén de doker de Alibaba Cloud, –username es el nombre de usuario de Alibaba Cloud, y la contraseña es la contraseña que se establece cuando se activa el servicio de duplicación. #Si
olvida la contraseña, haga clic en el menú: "Container Mirroring Service" - > "Instancia predeterminada" -> "Credenciales de acceso" para modificar el
inicio de sesión de la ventana acoplable --username = xieminglu registry.cn-hangzhou.aliyuncs.com
# 2. Agregue una etiqueta a la
etiqueta de la ventana acoplable deimagen local[ImageId] registry.cn-hangzhou.aliyuncs. com / xieminglu / alpine_jre: [Número de versión de espejo]
# 3. Push mirror (jdk8-alpine: 1.0)
docker push registry.cn-hangzhou.aliyuncs.com/xieminglu/alpine_jre:[Mirror número de versión]
Ejemplo:
etiqueta de docker 238f4a774e9b registro .cn-hangzhou.aliyuncs.com / xieminglu / alpine_jre:
registro de inserción de dockerv1.0.cn-hangzhou.aliyuncs.com/xieminglu/alpine_jre:v1.0

#pull (拉) 镜
# 1. Inicie sesión en el docker warehouse de Alibaba Cloud inicio de
sesión de la ventana acoplable --username = xieminglu registry.cn-hangzhou.aliyuncs.com #Tire la
imagen de la
ventana acoplable Registro pull registry.cn-hangzhou.aliyuncs.com / xieminglu / alpine_jre: [Número de versión del espejo]

Nota 1: El repositorio es un lugar de almacenamiento centralizado para la creación de reflejos. Se divide en depósitos públicos y privados.
A veces es fácil confundir el depósito con el servidor de registro (registro). De hecho, el servidor de registro es el servidor específico que almacena el depósito. Cada servidor registrado puede ser Hay varios almacenes y puede haber varios espejos debajo de cada almacén

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/xieminglu/article/details/103597017
Recomendado
Clasificación