Capítulo de operación y mantenimiento Docker primero vea la deidad-1

Preste atención a la cuenta pública de WeChat: Java Book Club para más artículos buenos Yo Ollie

1. ¿Qué es Docker?

Sitio web oficial de Docker

Modernice sus aplicaciones, acelere la innovación Cree, comparta y ejecute de forma segura aplicaciones modernas en cualquier lugar

Realice la modernización de aplicaciones, acelere la innovación y cree, comparta y ejecute aplicaciones modernas de forma segura en cualquier lugar

Documentos

Docker es una plataforma para desarrolladores y administradores de sistemas para crear, compartir y ejecutar aplicaciones con contenedores. El uso de contenedores para implementar aplicaciones se denomina contenedorización . Los contenedores no son nuevos, pero su uso para implementar aplicaciones fácilmente sí lo es.

* Docker es una plataforma para que los desarrolladores y administradores de sistemas utilicen contenedores para [crear, compartir y ejecutar] aplicaciones. ** El uso de contenedores para implementar aplicaciones se denomina [contenedorización]. * Los contenedores no son nuevos, pero se utilizan para implementar aplicaciones fácilmente.

2. ¿Por qué Docker?

Primero veamos el historial de desarrollo de operación y mantenimiento, desarrollemos un proyecto e implementemos en línea

  • Despliegue autónomo

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y subirla directamente (img-xDmBsofu-1583691157022) (E: \ architect \ architect \ markdown \ stand-alone deployment.png)]

La implementación independiente es conveniente y rápida al comienzo del proyecto, pero cuando nuestras visitas al proyecto aumentan y aumenta la complejidad del negocio, se expondrán muchas deficiencias en este momento:

成本高 部署慢 资源浪费``硬件限制``不利于扩展

  • La era de la virtualización

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y subirla directamente (img-LJiei4yo-1583691157024) (E: \ architect \ architect \ markdown \ containerization current.png)]

En comparación con antes, el uso de máquinas virtuales puede hacer un mejor uso de los recursos y es relativamente fácil de expandir, pero también trae muchas desventajas:

初始化占用资源较大 移植性较差 资源利用率低

  • En contenedor ahora

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y subirla directamente (img-n1rssmPL-1583691157025) (E: \ architect \ architect \ markdown \ containerization current.png)]

Las ventajas de Docker, para citar las palabras oficiales:

  • Estándar: Docker creó el estándar de la industria para contenedores, por lo que podrían ser portátiles en cualquier lugar.
  • Ligero: los contenedores comparten el kernel del sistema operativo de la máquina y, por lo tanto, no requieren un sistema operativo por aplicación, lo que genera una mayor eficiencia del servidor y reduce los costos del servidor y las licencias.
  • Seguro: las aplicaciones son más seguras en contenedores y Docker proporciona las capacidades de aislamiento predeterminadas más sólidas de la industria.
  • Estándares: Docker ha creado estándares de la industria para contenedores, por lo que pueden transportarse a cualquier lugar
  • ** Ligero: ** El contenedor comparte el kernel del sistema operativo de la computadora, por lo que no es necesario que todas las aplicaciones tengan un sistema operativo, lo que mejora la eficiencia del servidor y reduce los costos del servidor y de la licencia.
  • ** Seguridad: ** La aplicación en el contenedor es más segura. Docker proporciona la función de aislamiento predeterminada más potente del sector.

3. Construcción del entorno Docker

Instale centos7 en Windows, usando Vagrant + Virtual Box:

  • Instalación de Vagrant:
#1.访问vagrant官网
https://www.vagrantup.com
#2.点击Downloads,下载windows及对应版本
#3.next安装
#4.命令行输入vagrant 测试是否安装成功
  • Instalación de Virtual Box:
#1.访问VirtualBox官网 
https://www.virtualbox.org/ 
#2.点击Downloads,下载windows及对应版本
#4.next安装 
#注意事项:(我在安装的时候没有遇到哦)
[win10中若出现]安装virtualbox快完成时立即回滚,并提示安装出现严重错误 
	1)打开服务 
	2)找到Device Install Service和Device Setup Manager,然后启动
	3)再次尝试安装
  • Instalar centos
#1.创建docker-centos7文件夹(注意目录路径不要有中文字符),进入文件夹 
#2. 在此目录下打开cmd(或者powershell),运行vagrant init centos/7 此时会在当前目录下生成Vagrantfile
#3 准备centos7的box (也可以运行vagrant up 此时会找centos7的镜像,本地有就用本地的,本地没有就会拉取远端的,但是直接拉去远端太慢,建议先下载后从本地拉取)
	1)下载地址:https://pan.baidu.com/s/1fKylFndofc77zFWCUjBo8w 下载完成后放入上述新建的文件夹中
	2)vagrant box add centos/7 XX\virtualbox.box (你存放的地址)	
	3)vagrant box list 查看本地的box(这时候可以看到centos/7)
	4)vagrant up (根据本地的centos7 box创建虚拟机。打开virtual box,可以发现centos7创建成功)
#4. vagrant基本操作
	1)vagrant ssh 进入刚才创建的centos7中
    2)vagrant status 查看centos7的状态 
    3)vagrant halt 停止centos7 
    4)vagrant destroy 删除centos7 
    5)vagrant status 查看当前vagrant创建的虚拟机 
#5.修改虚拟机属性配置文件Vagrantfile之后执行vagrant reload
	config.vm.box = "centos/7"
	config.vm.network "public_network"
	config.vm.provider "virtualbox" do |vb|
		   vb.memory="3000"
		   vb.name  ="alvin-centos7"
		   vb.cpus   = 2
	end
	

Según los pasos de instalación anteriores de vagrant + virtual box + centos, ya podemos instalar la ventana acoplable, pero la ventana de comandos de windos no es muy amigable para nosotros, por lo que elegimos la instalación de xshell6

  • inicio de sesión xshell
#1.查看centos7的基本信息,主要获取Hostname Port IndentityFile信息
vagrant ssh-config 

#2.进入虚拟机查看其ip地址,复制其ip地址192.168.110.164
vagrant ssh 
ip a
#3.使用root账户登录
	sudo -i	
	vi /etc/ssh/sshd_config	
	修改PasswordAuthentication yes
	修改root密码 passwd 
	systemctl restart sshd
#4.连接xshell
	使用root账户+刚才修改的密码进行登录。
  • Darse cuenta de la distribución de cajas

    Antes de instalar Docker, debemos comprender la distribución de virtual.box para asegurarnos de que podamos crear rápidamente una nueva máquina virtual.

#1.回到我们上述的docker-centos目录
#2.退出虚拟机 vagrant halt
#3.执行vagrant package --output docker.centos7.box
#4.将上述执行结果docker-centos7.box添加到其他的vagrant环境中(注意:此时要新建一个目录,用来存放docker-centos7.box,然后进入到该目录下)
	vagrant box add docker-centos7 docker-centos7.box
#5.执行vagrant init docker-centos7 得到vagrantfile
#6.执行vagrant up就会发现启动了一个新的虚拟机。
  • Instalar Docker

Descripción oficial del sitio web: https://docs.docker.com/install/linux/docker-ce/centos/

#1.win+r打开命令窗口,执行cmd
#2.切换到docker-centos目录,执行vagrant up命令打开虚拟机(因为此时重启电脑了,虚拟机需要重新打开)
#3.使用xhsell登录虚拟机。
#4.执行以下命令:
	sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
	sudo yum install -y yum-utils \
  		 device-mapper-persistent-data \
  		 lvm2
#5.为了拉取镜像快速,可以登录自己的阿里云服务器->选择控制台->容器镜像服务->镜像中心->镜像加速器
	sudo mkdir -p /etc/docker
	sudo tee /etc/docker/daemon.json <<-'EOF'
	{
    
    
  	"registry-mirrors": ["https://gys4eox1.mirror.aliyuncs.com"]
	}
	EOF
	#(这个是免费的哦~)
	sudo systemctl daemon-reload
	sudo systemctl restart docker
#6.正式安装docker
	sudo yum install docker-ce docker-ce-cli containerd.io
#7.启动Docker
	sudo systemctl start docker
	sudo systemctl enable docker(设置开机启动)
	docker version --查看docker版本信息

4.Escenarios de aplicación de Docker

www.docker.com -> Soluciones

#1.有助于微服务的落地和部署
#2.充分利用物理机资源,同时能够整合服务器资源
#3。提高开发效率,测试效率,部署效率,有利于DevOps的落地,CI/CD(持续集成)
#4.云原生落地,应用更好地迁移
...

5.núcleo de Docker

Motor de Docker

Docker Engine es una aplicación cliente-servidor con estos componentes principales:

  • Un servidor que es un tipo de programa de larga duración llamado proceso demonio (el dockerdcomando).
  • Una API REST que especifica interfaces que los programas pueden usar para hablar con el demonio e indicarle qué hacer.
  • Un cliente de interfaz de línea de comandos (CLI) (el dockercomando).

Docker Engine es una aplicación cliente-servidor con los siguientes componentes principales:

  • El servidor es un programa de larga duración llamado proceso demonio ( dockerdcomando).
  • API REST, que especifica la interfaz que los programas pueden usar para comunicarse con el demonio e instruir sus operaciones.
  • Cliente de interfaz de línea de comandos (CLI) ( dockercomando).

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlink. Se recomienda guardar la imagen y subirla directamente (img-1o7N4glB-1583691157027) (E: \ architect \ architect \ markdown \ dockerEngine.png)]

Arquitectura de Docker

Docker utiliza una arquitectura cliente-servidor. El cliente de Docker habla con el demonio de Docker , que hace el trabajo pesado de compilar, ejecutar y distribuir sus contenedores de Docker. El cliente y el demonio de Docker pueden ejecutarse en el mismo sistema, o puede conectar un cliente de Docker a un demonio de Docker remoto. El cliente y el demonio de Docker se comunican mediante una API REST, a través de sockets UNIX o una interfaz de red.

Docker utiliza una arquitectura cliente-servidor. El cliente Docker y el diálogo del demonio Docker , el demonio completan la construcción, operación y distribución de los contenedores Docker. El cliente y el demonio de Docker pueden ejecutarse en el mismo sistema, o puede conectar el cliente de Docker a un demonio de Docker remoto. El cliente y el demonio de Docker se comunican mediante API REST en sockets UNIX o interfaces de red.

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlink. Se recomienda guardar la imagen y subirla directamente (img-j72X8wG2-1583691157028) (E: \ architect \ architect \ markdown \ docker architecture.png)]

Imágenes y contenedores de Docker

Una imagen de contenedor de Docker es un paquete de software ligero, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones. Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de forma rápida y confiable de un entorno informático a otro. Las imágenes de contenedor se convierten en contenedores en tiempo de ejecución y, en el caso de los contenedores de Docker, las imágenes se convierten en contenedores cuando se ejecutan en Docker Engine.

Básicamente, un contenedor no es más que un proceso en ejecución, al que se le aplican algunas características de encapsulación adicionales para mantenerlo aislado del host y de otros contenedores. Uno de los aspectos más importantes del aislamiento de contenedores es que cada contenedor interactúa con su propio sistema de archivos privado; este sistema de archivos lo proporciona una imagen de Docker . Una imagen incluye todo lo necesario para ejecutar una aplicación: el código o binario, tiempos de ejecución, dependencias y cualquier otro objeto del sistema de archivos requerido.

Una imagen de contenedor de Docker es un paquete de software ligero, independiente y ejecutable que contiene todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones. Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias, por lo que una aplicación puede ejecutarse de manera rápida y confiable de un entorno informático a otro. La imagen del contenedor se convierte en un contenedor en tiempo de ejecución. Para un contenedor Docker, la imagen está en el contenedor Docker Engine . Se convierte en contenedor en tiempo de ejecución.

Hablando fundamentalmente, un contenedor es solo un proceso en ejecución, y se le aplican algunas funciones de encapsulación adicionales para aislarlo del host y otros contenedores. Uno de los aspectos más importantes del aislamiento de contenedores es que cada contenedor interactúa con su propio sistema de archivos privado. El sistema de archivos lo proporciona la imagen de Docker . La imagen incluye todo lo necesario para ejecutar el código de la aplicación o los binarios, el tiempo de ejecución, las dependencias y cualquier otro objeto del sistema de archivos necesario.

Contenedores y máquinas virtuales

Un contenedor se ejecuta de forma nativa en Linux y comparte el kernel de la máquina host con otros contenedores. Ejecuta un proceso discreto, no necesita más memoria que cualquier otro ejecutable, lo que lo hace liviano.

Por el contrario, una máquina virtual (VM) ejecuta un sistema operativo "invitado" completo con acceso virtual a los recursos del host a través de un hipervisor. En general, las VM incurren en una gran sobrecarga más allá de lo que consume la lógica de su aplicación.

El contenedor se ejecuta localmente en Linux y comparte el kernel del host con otros contenedores. Ejecuta un proceso discreto y no ocupa más memoria de ningún otro archivo ejecutable, lo que lo hace liviano.

Por el contrario, una máquina virtual (VM) ejecuta un sistema operativo "invitado" maduro y accede a los recursos del host virtualmente a través de un hipervisor . En general, la VM incurrirá en una gran sobrecarga, que excede la sobrecarga consumida por la lógica de la aplicación.

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlink. Se recomienda guardar la imagen y subirla directamente (img-Wp1m5rf9-1583691157029) (E: \ architect \ architect \ markdown \ container and virtual machine.png)]

6.uso de Docker

Se ha dicho tanto anteriormente, así que tenemos Docker, ¿cómo lo usamos? Es posible que desee utilizar la ventana acoplable para instalar algunas aplicaciones básicas.

  • Primera experiencia de Docker
#创建tomcat容器
	docker pull tomcat
	##启动tomcat
	docker run -d --name my-tomcat -p 9090:8080 tomcat
#创建mysql容器
	docker run -d --name my-mysql -p 3301:3306 -e MYSQL_ROOT_PASSWORD=alvin123 --privileged mysql
#进入到容器内部
	docker exet -it containerid /bin/bash
	

Entonces, ¿de dónde sacamos estas imágenes de contenedores?

https://hub.docker.com/

  • Comandos de uso común de Docker
#1.查看本地Docker镜像
	docker images
#2.拉取镜像
	docker pull
#3.创建容器
	docker run
#4.查看当前正在运行的容器
	docker ps
#4.查看所有运行过的容器
	docker ps -a

7. Conjetura del diseño de Docker

Pensamiento estratificado

[Error en la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-hotlink, se recomienda guardar la imagen y subirla directamente (img-pBfq2rO1-1583691157030) (E: \ architect \ architect \ markdown \ docker diseño jerárquico)]

Lo anterior es la información básica de la deidad portuaria. La próxima vez que llevemos a cabo una tortura del alma en docker, bienvenido a ver ~

Supongo que te gusta

Origin blog.csdn.net/aiwaston/article/details/104744926
Recomendado
Clasificación