Proyecto de interfaz de usuario de implementación de Docker [práctica, registro]

Este artículo solo registra el conocimiento básico y la práctica de implementación inicial del blogger después de aprender y practicar la tecnología Docker. Por favor, corríjame si hay algún error.

Conociendo Docker

Uno: composición de Docker

Inserte la descripción de la imagen aquí

Cómo funciona Docker

Docker es un sistema basado en la estructura C / S. El demonio Docker se ejecuta en el servidor Linux (host). Cuando ingresamos comandos relacionados con Docker en el servidor Linx (Docker-Client), se enviará a Doker-Server.

Dos: host acoplable 【reconocimiento】

1. Imagen

Una imagen de Docker es equivalente a un sistema de archivos, que lleva todos los datos necesarios para crear un tipo específico de contenedor. Según un determinado tipo de imagen, se pueden crear muchas instancias de contenedor.

2. Contenedor (contenedor)

El contenedor puede considerarse como una versión simple del sistema Linux, que se ejecuta en el host, pero tiene su propio sistema de archivos y red.

Tres: cliente de Docker [interactivo]

Nota: El siguiente contenido clasifica los distintos comportamientos de cada objeto. Según la lógica del proceso, se puede dividir en cinco comportamientos: acción crud, acción config, acción host, acción controlOne y acción manageAll. El siguiente contenido solo se enfoca en la lógica de comportamiento básica de cada objeto, y usted mismo busca los comandos específicos.

1. Administrar el servicio de Docker

acción cruda
  • Instalación (C): linux / window
  • Descripción (R)
docker version
docker info
  • Desinstalar (D)
acción de configuración
  • Configurar almacén espejo
  • Configurar la aceleración de imágenes de Alibaba Cloud
controllOne acción
  • (Arrancar desde) iniciar el servicio docker
  • Cerrar el servicio de Docker

2. Administrar imágenes de Docker

acción cruda
  • Tirar (C): tirar
  • Construir (C): construir
  • Ver (R)
docker inspect 镜像id
  • Eliminar (D)
# deleteAll
docker rmi -f $(docker images -aq) 
# deleteOne
docker rmi -f 镜像id                      
# deleteMany
docker rmi -f 镜像id 镜像id 镜像id 镜像id
administrar toda la acción
  • Ver todos los espejos
# findAll
docker images
# findOne
docker search 镜像名

3. Administrar contenedores de Docker

acción cruda
  • Crear (C)
docker run 可选参数 镜像名
# 可选参数
--name=”xxx“    # 容器名字
-d              # 后台模式运行
-it             # 使用交互模式运行,进入容器查看内容
-p(小学)         # 指定端口映射 如:-p 8080(宿主机):8080(容器)
-P(大写)         # 随机端口映射
--net           # 网络模式
-v              # 数据卷
  • Ver (R)
docker inspect 容器id
  • Eliminar (D)
# deleteAll
docker rm -f $(docker ps -aq)
# deleteOne
docker rm -f 容器id
acción del anfitrión
  • transferencia de archivos
docker cp 容器id:文件路径(容器内) 目的路径(宿主机)
[root@MT ~]docker cp 1a9a6785c37c:/home/c.java /home/
  • proceso
docker top 容器id
  • Archivos compartidos, red compartida (especificados en forma de parámetros al ejecutar la imagen para obtener la instancia del contenedor)
controllOne acción
  • Iniciar y detener
docker start 容器id      # 启动容器
docker restart 容器id    # 重启容器
docker stop 容器id       # 停止正在运行的容器
docker kill 容器id       # 强制停止
  • Entrada y salida
# 进入
docker exec -it 容器ID /bin/bash
# 退出
exit          # 容器直接退出
Ctrl + P + Q  # 容器不停止退出
  • Ver registro
docker logs -tf 容器id             # 查看实时日志  
docker logs -t --tail 数量 容器id  # 查看指定数量的日志   
administrar toda la acción
  • Ver todos / en ejecución / detener contenedores
docker ps
docker ps -a -q

Cuatro: Docker Registry [referencia]

Docker Registry es un lugar donde los archivos de imagen se almacenan de forma centralizada y imageName e imageTag juntos determinan una imagen.

1.docker Hub

Sitio web oficial: https://hub.docker.com/, que desempeña un papel similar al de github, puede buscar el espejo requerido aquí y leer el documento.

2. Almacén en la nube de Alibaba

El almacén público nacional, la velocidad de descarga del espejo es rápida.

Practica la implementación de Docker

Paso 1: etapa de desarrollo del proyecto [output git repo (project and dockerfile)]

1. Escribe dockerfile

Que es dockerfile

Dockerfile es un archivo de texto que se utiliza para crear una imagen. El contenido de texto contiene instrucciones e instrucciones para crear una imagen.

Elementos de configuración comunes de Dockerfile
  • Si el inglés es bueno, consulte los documentos oficiales; si el inglés es deficiente, consulte el tutorial para principiantes y otros materiales.
Ejemplo de implementación de proyecto de front-end dockerfile

Nota: Dado que el método de implementación adoptado es el método de proxy nginx para múltiples servicios http, el siguiente ejemplo es solo para construir una única imagen de servicio http basada en el entorno del nodo.

FROM node:12

RUN mkdir -p /home/docs
WORKDIR /home/docs

ADD package.json .
RUN yarn config set registry 'https://registry.npm.taobao.org'
RUN yarn

COPY . /home/docs

RUN yarn docs:build

EXPOSE 3386
# 以下server.js即是一个在node环境下,通过express框架搭建http服务的脚本。
CMD ["node", "server.js"]

2. Preparar datos y script (involucrados en dockerfile)

código del proyecto (datos)
server.js (script)
// express依赖
const http = require('http')
const path = require('path')
const bodyParser = require('body-parser')
const express = require('express')
// ecstatic依赖
const ecstatic = require('ecstatic')
// connect-history-api-fallback依赖
const history = require('connect-history-api-fallback')

const app = express()
app.use(bodyParser.json())

app.use(history())

app.use(ecstatic({
    
     root: path.join(__dirname, './dist') }))

http.createServer(app).listen(process.argv[2] || 3386)

Paso 2: Etapa de empaquetado de front-end [input git repo, output image (after test)]

1.Clonar

# 在打包机上
mkdir codePath
cd codePath
git clone https://github.com/xx/xx.git

2.construir

cd projectPath
docker build -t xx/node:tagName .

3.Ejecutar

docker run -d -p 3386:3386--name containerName xx/node:tagName
curl 127.0.0.1:7788 # test

4.Compartir

Sin práctica, consulte https://www.runoob.com/docker/docker-repository.html

Paso 3: el servidor ejecuta la etapa del contenedor [imagen de entrada, en ejecución]

Nota: El siguiente método de implementación del proyecto es un contenedor nginx + varios contenedores de servidor http

Servicio 1.nginx

Requisito: el enrutamiento de primer nivel de nginx controla el acceso a diferentes proyectos, como 127.0.0.1/project1 para acceder a project1 y 127.0.0.1/project2 para acceder a project2.

primero: tire del servicio nginx, cree el contenedor nginx, inicie el contenedor nginx
  • Tire, cree y comience: desarrolle el hábito de mirar a través del documento después de mirar el espejo de Docker Hub (es mejor enseñarle a pescar que enseñarlo, jaja).
  • Nota: Para el reenvío entre contenedores, dado que el host y cada contenedor tienen su propia red y puerto, es necesario realizar la asignación de red y puerto. Puede permitir que el contenedor nginx comparta la red con el host permitiendo que el contenedor nginx –net = host , Y luego tenga en cuenta los requisitos de reenvío de solicitudes del contenedor nginx -> host -> contenedor del proyecto (tenga en cuenta que, en la práctica, se producen errores inesperados en la ventana acoplable para el entorno de ventana, y Linux es normal).
segundo: agregue una configuración de reenvío de solicitudes para una ruta específica
  • Agregar configuración de proxy
docker ps
# 进入容器
docker exec -it nginxId /bin/bash
# 修改配置
vi /etc/nginx/conf.d # vi编辑器问题,1.command not find:执行 apt-get install vim 2.找不到包:apt-get update
--- conf.d
# 对应server下添加如下配置
	location /project1{
    
    
		proxy_pass http://127.0.0.1:3386;
	}
---

2.servicio de proyecto

Ejecute el servicio http del proyecto de prueba
docker run -d -p 3386:3386 --name containerName xx/node:tagName
curl 127.0.0.1:3386# test

Supongo que te gusta

Origin blog.csdn.net/jw2268136570/article/details/108218613
Recomendado
Clasificación