Compartir tecnología

Resumen de ventana acoplable

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Preparar el ambiente:

  • VMware17
  • Ubuntu 18.04 (LTS): https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso

1. Vista previa de Docker


Documentos relacionados con Docker:

  • Dirección del sitio web oficial de Docker: https://www.docker.com/
  • Dirección de documentación de Docker: https://docs.docker.com/
  • almacén de imágenes de Docker: https://hub.docker.com/

Docker feliz

1. Qué es Docker: es un motor de contenedores de código abierto que puede administrar contenedores fácilmente y los contenedores están aislados entre sí mediante un mecanismo de espacio aislado.

2. ¿Qué problema resuelve Docker? Resuelva el problema de migración del entorno de software.

3. La diferencia entre contenedores y máquinas virtuales:

  • Contenedor: es una abstracción de una aplicación (empaquetando código y dependencias juntas), que consume menos recursos, se inicia rápidamente, es liviana y flexible.
  • Máquina virtual: es una abstracción del hardware físico (convertir un servidor en varios servidores). Consume muchos recursos y es voluminosa y potente.

imagen-20240706011000322

Cuarto, almacenamiento en la ventana acoplable:

  • Directorio de montaje, ejemplo: -v /宿主机目录:容器目录
  • Mapeo de volumen de datos, ejemplo:数据卷:容器目录

5. Red Docker: cree una red personalizada para lograr el acceso al nombre de host como un nombre de dominio estable. (Permite que los contenedores de la misma red se comuniquen entre sí)

#示例
#自定义网络
docker network create mynet
#主节点
docker run -d -p 6379:6379 
-v /app/rd1:/bitnami/redis/data 
-e REDIS_REPLICATION_MODE=master 
-e REDIS_PASSWORD=123456 
--network mynet --name redis01 
bitnami/redis

#从节点
docker run -d -p 6380:6379 
-v /app/rd2:/bitnami/redis/data 
-e REDIS_REPLICATION_MODE=slave 
-e REDIS_MASTER_HOST=redis01 
-e REDIS_MASTER_PORT_NUMBER=6379 
-e REDIS_MASTER_PASSWORD=123456 
-e REDIS_PASSWORD=123456 
--network mynet --name redis02 
bitnami/redis
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2. Instale Docker


Este artículo se basa en la instalación del entorno Ubuntu. Si no tiene permisos, simplemente agregue sudo al frente.

1. Apague el firewall (no es necesario exponer manualmente el puerto para acceso externo posterior, lo cual es conveniente para realizar pruebas)

sudo ufw disable

#关闭防火墙:sudo ufw disable
#查看防火墙状态:sudo ufw status
#开启防火墙:sudo ufw enable
  • 1
  • 2
  • 3
  • 4
  • 5

2. Instalar la ventana acoplable

#卸载旧版docker
sudo apt-get remove docker docker-engine docker.io containerd runc

#更新软件包
sudo apt-get update

#安装一些工具
sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg-agent 
    software-properties-common

#安装docker
sudo apt install docker.io 

#验证dokcer是否安装成功
docker --version

#启动& 开机启动docker; enable + start 二合一
sudo systemctl enable docker --now

#配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF

#重新加载配置
sudo systemctl daemon-reload
#重启docker服务
sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

3. Comandos comunes de Docker


imagen-20240706032721566

1. Gestión del estado del servicio Docker:

  • systemctl status docker: ver el estado de ejecución de la ventana acoplable
  • systemctl detener la ventana acoplable: cerrar la ventana acoplable
  • systemctl iniciar ventana acoplable: iniciar ventana acoplable
  • systemcl reiniciar la ventana acoplable: reiniciar la ventana acoplable
  • systemctl enable docker: configura la ventana acoplable para que se inicie automáticamente al arrancar

2. Gestión de imágenes de Docker:

  • Imagen de búsqueda: nombre de la imagen de búsqueda de Docker
  • Extraiga la imagen: docker pull Nombre de la imagen: etiqueta Si no se especifica la etiqueta, se extraerá la última
  • Ver imágenes: imágenes acoplables
  • Eliminar imagen: docker rmi nombre de imagen: etiqueta

3. Gestión de contenedores Docker:

  • Cree un contenedor: docker run -di --name=nombre del contenedor nombre de la imagen: etiqueta
  • Cerrar el contenedor: nombre del contenedor de parada de Docker
  • Inicie el contenedor: nombre del contenedor de inicio de Docker
  • Eliminar contenedor: nombre del contenedor docker rm
  • Ver el contenedor:
    • docker ps -a Ver todos los contenedores, incluidos los que no se están ejecutando
    • docker ps para ver los contenedores en ejecución
  • Ingrese el contenedor: docker exec -it nombre del contenedor/bin/bash

4. Volumen de datos de Docker:

  • Volumen de datos: es una carpeta administrada por Docker.

  • El uso de volúmenes de datos: puede vincular un volumen de datos a una ruta en un contenedor para realizar una transferencia automática bidireccional de archivos entre el contenedor y el host.

    Coloque el archivo en el volumen de datos del host: Docker sincronizará automáticamente el archivo con el contenedor.

    Si los archivos en el contenedor cambian: Docker los sincronizará automáticamente con el volumen de datos del host.

  • Comandos de operación de volumen de datos:

    Listar volúmenes de datos: volumen acoplable ls

    Crear un volumen de datos: volumen acoplable crear nombre del volumen de datos

    Ver detalles del volumen de datos (ruta real): volumen de Docker inspeccionar el nombre del volumen de datos

    Eliminar volumen de datos: volumen docker nombre del volumen de datos rm

  • Cree el contenedor y vincule el volumen de datos:

    docker run -di --name=nombre del contenedor -v nombre del volumen de datos: ruta en el nombre de la imagen del contenedor: etiqueta

    docker run -di --name=nombre del contenedor -v ruta en el host: ruta en el contenedor nombre de la imagen: etiqueta

    Nota: Todas las rutas del parámetro -v deben ser rutas absolutas.

5. Copia de seguridad espejo:

  • Exportar imagen: docker save -o nombre de archivo nombre de imagen
  • Cargue la imagen: carga acoplable -i xxx.tar

4. Archivo Docker


Documentación: https://docs.docker.com/reference/dockerfile/

Rol de Dockerfile: crear imágenes personalizadas.

Dockerfile se basa en una imagen básica y escribe una serie de instrucciones de Docker. Cada instrucción construye una capa de imagen. A través de estas instrucciones, capa por capa, finalmente se construye una imagen de destino.

Instrucciones comunesefecto
DEEspecificar el entorno base de la imagen
CORREREjecutar comando personalizado
CmdComando o parámetros de inicio del contenedor
ETIQUETAEtiquetas personalizadas
EXPONEREspecificar puerto expuesto
ENVVariables de entorno
AGREGARAgregar archivos a la imagen
COPIARCopiar archivos a imagen
PUNTO DE ENTRADAComando de inicio fijo del contenedor
VOLUMENvolumen de datos
USUARIOEspecificar usuarios y grupos de usuarios
DIRECTORIO DE TRABAJOEspecificar el directorio de trabajo predeterminado
ARGEspecificar parámetros de compilación

Ejemplo:

#编写dockerfile文件
vim Dockerfile
FROM openjdk:17
LABEL author=aopmin
COPY app.jar /app.jar   #把jar包复制到容器的根目录下
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]  #运行命令

# 构建镜像
docker bulid -f Dockerfile -t 镜像名:tag .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5. Orquestación de servicios


Orquestación de servicios u orquestación de contenedores: administre contenedores en lotes de acuerdo con ciertas reglas comerciales.

Docker Compose es una herramienta de orquestación para definir y ejecutar múltiples contenedores Docker.

Se pueden iniciar varios contenedores con un solo comando. Resuelve principalmente el problema de cómo gestionar y organizar contenedores.

Hay tres pasos para usar Docker Compose:

  1. Utilice Dockerfile para definir el entorno de ejecución (si ya tiene un espejo, puede omitir este paso)
  2. usardocker-compose.ymlDefinir los servicios que componen la aplicación.
  3. correrdocker-compose up -dIniciar aplicación

Instale Docker-compose:

# 下载docker compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 设置权限
chmod +x /usr/local/bin/docker-compose

# 查看版本 
docker-compose -version
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Si desea desinstalar Docker-compose, puede ejecutar el siguiente comando:

# docker compose是二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
  • 1
  • 2

Comandos comunes para docker-compose:

# !!!注意:必须先切换到`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!

#创建容器并后台启动
docker-compose up -d

#直接启动容器
docker-compose start

#其它命令:
docker-compose help # 查看帮助
docker-compose stop  # 停止容器
docker-compose start # 启动容器
docker-compose restart # 重启容器
docker-compose rm # 删除已停止的容器
docker-compose down # 停止并删除容器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Ejemplo:

1. Cree el directorio Docker-Compose

mkdir ~/docker-compose
cd ~/docker-compose
  • 1
  • 2

2. Escribedocker-compose.yamldocumento

version: "3.0"
services:
  redis:
    container_name: redis 
    image: redis:5.0
    ports:
      - 6379:6379
  nginx:
    container_name: nginx
    image: nginx:1.14.2
    ports:
      - 80:80
    volumes:
      - /root/volumes/nginx/html:/usr/share/nginx/html
  tomcat:
    container_name: tomcat
    image: tomcat:8.5.88
    ports:
      - 8080:8080
    volumes:
      - /root/volumes/tomcat/webapps:/usr/local/tomcat/webapps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

3. Empezar

# !!!注意:必须先切换到有`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
cd ~/docker-compose

# docker-compose up -d 以守护进程方式创建并启动容器
docker-compose up -d
  • 1
  • 2
  • 3
  • 4
  • 5