Inicio rápido de la administración de imágenes de Docker

Introducción

Presente cómo usar Docker para crear una imagen, distribuirla al servidor ECS a través de Alibaba Cloud Image Service y ejecutar la imagen.

conocimiento de fondo

Tecnología de
contenedores Container es una tecnología de virtualización liviana a nivel de sistema operativo que nos permite ejecutar aplicaciones y sus dependencias en el proceso de aislamiento de recursos. Todos los componentes necesarios para ejecutar aplicaciones están empaquetados en una sola imagen. Este espejo se puede reutilizar. Cuando la imagen se está ejecutando, se ejecuta en un entorno independiente y no comparte la memoria, la CPU o el disco del sistema operativo host con otras aplicaciones. Esto asegura que los procesos dentro del contenedor no afectarán ningún proceso fuera del contenedor.

Almacén espejo (Registro)
El centro de almacenamiento espejo de Docker generalmente se llama Registro. Cuando necesite obtener su propia imagen privada, primero debe iniciar sesión en el Registro y luego extraer la imagen. Después de modificar la imagen, puede volver a enviar la imagen al Registro. O genere una imagen localmente a través de la función de construcción de imágenes de Docker y luego envíelo al Registro.

Servicio de imágenes de contenedores ACR (Alibaba Cloud Container Registry) El
servicio de imágenes de contenedores de Alibaba Cloud La versión de instancia predeterminada de ACR proporciona servicios básicos de imágenes de contenedores, que incluyen capacidades de alojamiento de imágenes de aplicaciones seguras, funciones de escaneo de seguridad de imágenes precisas, servicios de construcción de imágenes nacionales y extranjeras estables y conveniencia La duplicación función de autorización de, para facilitar a los usuarios la gestión de todo el ciclo de vida de la duplicación.

Conéctese al servidor ECS (si no lo ha comprado, puede experimentar ECS aquí )

1. Abra la herramienta de terminal que viene con el sistema.
Windows: CMD o Powershell.
MAC: Terminal.

  1. Ingrese el comando de conexión ssh [nombre de usuario] @ [ipaddress] en la terminal. Debe reemplazar el nombre de usuario y la dirección IP con el nombre de inicio de sesión y la dirección de red pública del servidor ECS creado en la Sección 1. P.ej:
ssh [email protected]

Inserte la descripción de la imagen aquí
Los resultados de la pantalla de comandos son los siguientes:

Inserte la descripción de la imagen aquí
3. Ingrese sí, después de aceptar continuar, se le pedirá que ingrese la contraseña de inicio de sesión. La contraseña es la contraseña de inicio de sesión del ECS del servicio en la nube creado.

Desarrollar el servicio Docker

Docker es un motor de contenedores de código abierto para crear, administrar y organizar contenedores. Puede crear fácilmente un contenedor ligero, portátil y autosuficiente para cualquier aplicación. Este paso implementará un servicio Docker en ECS y configurará el acelerador de imágenes de DockerHub.

  1. Instale las bibliotecas dependientes de Docker.
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. Agregue la información de la fuente de software de Docker CE.
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. Instale Docker CE.
yum makecache fast &&
yum -y install docker-ce
  1. Inicie el servicio Docker.
systemctl start docker
  1. Configure el acelerador de imágenes DockerHub.
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
  1. Reinicie el servicio Docker.
systemctl restart docker

Preparar el código de la aplicación y Dockerfile

Este paso creará un archivo de código HelloWorld basado en Golang y un archivo Dockerfile que se utilizará para crear la imagen del entorno necesaria para ejecutar el código Hello en el espacio de trabajo.

  1. Crea un espacio de trabajo.
mkdir -p /tmp/demo && cd /tmp/demo
  1. Cree un archivo de código HelloWorld en el espacio de trabajo para supervisar el servicio HTTP en el entorno del contenedor y generar la cadena HelloWorld.
cat > /tmp/demo/main.go << EOF
package main

import (
        "fmt"
        "net/http"
)

func main() {
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
                fmt.Fprintf(w, "Hello! World\n")
        })

        fmt.Println("start to serve...")
        http.ListenAndServe(":80", nil)
}
EOF
  1. Cree un archivo Dockerfile en el espacio de trabajo.
cat > /tmp/demo/Dockerfile << EOF
FROM golang:1.12-alpine

# change current working dir
WORKDIR /go/src/app

# copy main.go into /go/src/app
COPY . .

# go build and install the app
RUN go install -v ./...

# run the app by default
CMD ["app"]
EOF

Construya la imagen localmente y ejecute la imagen

Este paso lo guiará para usar los comandos básicos de Docker para construir y ejecutar el espejo

  1. Utilice el comando docker build para crear la imagen.
docker build . -t demo:v1

El resultado de la ejecución del comando es el siguiente:

Inserte la descripción de la imagen aquí
Descripción: El
parámetro. Significa especificar la ruta actual como contexto de compilación, es decir, la ruta local donde se encuentra el Dockerfile.
El parámetro -t demo: v1 especifica el nombre y la etiqueta de la imagen.

  1. Utilice el comando docker run para ejecutar la imagen.
docker run -d -p 8000:80 demo:v1

El resultado de la ejecución del comando es el siguiente:

Inserte la descripción de la imagen aquí

Descripción:

El parámetro -d establece el modo de operación del contenedor en operación en segundo plano.
El parámetro -p 8000: 80 asigna el puerto de red utilizado dentro del contenedor al host, donde 8000 es el puerto del host y 80 es el puerto utilizado dentro del contenedor.

  1. Utilice la herramienta curl para acceder al servicio HelloWorld en el contenedor.
curl localhost:8000

El resultado de la ejecución del comando es el siguiente:
Inserte la descripción de la imagen aquí

4. Utilice el comando docker rm para eliminar el contenedor.

docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')

El resultado de la ejecución del comando es el siguiente:

Inserte la descripción de la imagen aquí

Crear un almacén espejo remoto

Este paso lo guiará para usar su cuenta de Alibaba Cloud para abrir el servicio de imágenes de contenedores y crear un almacén de imágenes. La versión de instancia predeterminada del servicio de duplicación de contenedores en la nube de Alibaba se puede utilizar de forma gratuita. Para conocer las restricciones de uso, consulte las instrucciones de facturación del servicio de duplicación de contenedores.

1. Utilice su cuenta principal de Alibaba Cloud para iniciar sesión en la consola del servicio de duplicación de contenedores .

2. [Vaya a Activación] "Haga clic en [Establecer contraseña de inicio de sesión del registro]" Configure la contraseña de inicio de sesión de Alibaba Cloud Docker Registry y, a continuación, haga clic en [Aceptar].
3. En la consola del servicio de duplicación de contenedores, haga clic en [Instancia predeterminada]> [Espacio de nombres]> [Crear espacio de nombres], complete el nombre del espacio de comando en el cuadro emergente [Crear espacio de nombres] y luego haga clic en [Aceptar].
Inserte la descripción de la imagen aquí

  1. Haga clic en [Almacén local]> [Crear almacén espejo]. En la lista de almacenes espejo, seleccione el almacén espejo creado en el paso anterior y haga clic en [Administrar] para ver los detalles del almacén espejo.

Espejo de empuje

En este paso, la réplica local se envía al almacén remoto y se ejecuta la versión especificada de la réplica en el almacén remoto. Reemplace la dirección de espejo remoto involucrada en el comando en este paso con la dirección de red pública del almacén de espejo creado en el paso 6.

1. Ejecute el siguiente comando para iniciar sesión en Alibaba Cloud Docker Registry.

docker login --username="用户名" registry.cn-hangzhou.aliyuncs.com

Nota: Reemplace el nombre de usuario en el siguiente comando con su nombre completo de su cuenta de Alibaba Cloud, y luego presione Entrar e ingrese la contraseña del almacén espejo remoto. La contraseña es la contraseña establecida cuando activa el servicio en el paso 6.

Inicie sesión en el Centro de usuarios de la nube de Alibaba para ver el nombre de usuario de su cuenta principal.
Inserte la descripción de la imagen aquí
El resultado de la ejecución del comando es el siguiente:

Inserte la descripción de la imagen aquí
2. Marque el espejo local y colóquelo en el almacén remoto.

docker tag demo:v1 registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

3. Empuje el espejo local al almacén remoto.

docker push registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

El resultado de la ejecución del comando es el siguiente:
Inserte la descripción de la imagen aquí

  1. Tire del espejo remoto de la versión especificada.
docker pull registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

El resultado de la ejecución del comando es el siguiente:
Inserte la descripción de la imagen aquí

  1. Ejecute el espejo remoto tirado.
docker run -d -p 8000:80 registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

El resultado de la ejecución del comando es el siguiente:
Inserte la descripción de la imagen aquí

  1. Accede al servicio HelloWorld.
curl localhost:8000

El resultado de la ejecución del comando es el siguiente:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.51cto.com/14981263/2678339
Recomendado
Clasificación