[Docker linux] La imagen del sistema Linux se convierte en imagen de docker

Resumen

Todos los que usan Docker para instalar Linux saben que si instala el sistema Linux en el almacén provisto por Docker, experimentará el sistema Linux más racionalizado y puro. Por supuesto, él simplificará que incluso ifconfignecesite configurar los comandos usted mismo Para mí, esto no es lo que quiero. Si uso VMware para instalar el sistema Linux, pero he usado docker, no puedo usar vmware. Entonces me preguntarán, ¿no se pueden usar docker y vmware al mismo tiempo?

Entonces, te digo que sí.

El problema radica aquí: hay muchos artículos en Internet que hablan sobre la diferencia entre docker y vmware, pero pocos artículos explican la diferencia entre las tecnologías virtuales que usan en Windows.

El cliente actual de Windows producido oficialmente por Docker se llama Docker Desktop para Windows. Una de las condiciones para su funcionamiento normal es que el sistema abra el servicio de virtualización Hyper-V. Como se mencionó anteriormente, Hyper-V es un hipervisor de tipo 1, que Esto hace que el software como VMware y otros hipervisores de
tipo 2 no funcionen . En este punto, han surgido conflictos: los clientes Docker que usan la tecnología Hyper-V y otros hipervisores de tipo 2 no pueden ejecutarse al mismo tiempo. Debe reiniciar y apagar Hyper-V para ejecutar otros programas nuevamente. Software de hipervisor tipo 2.

Extracto de la coexistencia de Docker y VMware en Windows

@ @

Luego, después de conocer el motivo, debemos comenzar a resolverlo. No quiero usar docker y VMware para alternar. La forma estúpida inicial es usar vmware en otro sistema (instalé un sistema dual) y docker en Windows. De todos modos, la máquina virtual solo está en Se usa en clase, pero no es correcto recordarlo, ¿no es más problemático?

Mirando hacia atrás, dado que Docker puede instalar el sistema Linux, ¿puedo usar mi propio archivo de imagen para importarlo?

Exporté el sistema Linux original instalado en Docker para verificar su estructura interna. ¿No es este el archivo Linux común? Por lo tanto, solo necesito comprimir el sistema Linux original en un archivo de imagen del acoplador y luego importarlo al acoplador. ¿No se han resuelto todos los problemas?

Si aún no ha instalado Docker, consulte: Instalación de Docker de motor de contenedor de aplicaciones que vale la pena aprender

Uno: el proceso

Primero, empaquete la imagen de Linux

El empaquetado del sistema Linux debe simplificarse. Algunos archivos temporales no son necesarios, por lo que no es necesario empaquetar, solo necesita empacar lo que necesitamos. Use el siguiente comando, recuerde agregar sudo, empaquete todos los archivos de Linux system.tar, guárdelos en el directorio tmp, excluya algunos directorios innecesarios y no olvide un punto al final.

tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .

2. Exportar desde el sistema Linux a la máquina física (Windows)

Si tiene un socio pequeño, puede completar el primer y segundo paso en Vmware en su computadora y luego usar la herramienta ftp para exportar.

Después del empaque, exportaré el paquete comprimido, porque he instalado una hadoop、hbase、zookeeper、hiveserie de cosas, ahora tiene un tamaño de 2.57 GB.

Ignore este párrafo: (exporté el archivo del sistema Deepin a Windows, regístrelo aquí para uso futuro, Windows y Linux no se comparten, no se puede acceder al sistema de archivos Deepin en Windows, pero Los archivos de Windows se pueden leer en Deepin, pero no se pueden escribir. Entonces, ¿cómo puedo obtener Windows en el paquete comprimido en Deepin (Linux)? En este momento, linux readersalió el artefacto y se puede usar para leer y escribir el sistema de archivos Deepin en Windows Las cosas son muy bonitas)

Tres, importar a Docker

En cmd, importe el paquete comprimido que acaba de comprimir. Aquí debe ir al directorio donde se encuentra system.tar. De lo contrario, puede agregar directamente la ruta absoluta de system.tar, de lo contrario definitivamente obtendrá un error y no podrá encontrar el archivo.

docker import system.tar

Después de importar y usar la docker imagesimagen de visualización, habrá una imagen sin nombre sin etiqueta. En este momento, debemos etiquetar la imagen para su uso y visualización futuros.

Cuarto, etiqueta

Use el docker tagcomando para etiquetar su espejo, seguido de la identificación del espejo y el nombre del almacén: etiqueta.

docker tag [镜像id] linux/centos:hadoop


En este punto, tiene más de la mitad de su éxito. En este momento, la imagen está lista y necesita usarla para ejecutar un contenedor.

Cinco, corre el contenedor

Use el siguiente comando para ejecutar la imagen que creó usted mismo, preste atención a lo siguiente /bin/bash.

docker run -t -i [镜像id] /bin/bash

Prueba, um, Java todavía está allí, entonces todo lo demás sigue ahí.

Bueno, por ahora, se ha hecho un gran trabajo.

Dos: operaciones relacionadas con docker

一 、 docker guardar

Guarde el archivo de imagen como un archivo local.

Usage:  docker save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Options:
  -o, --output string   Write to a file, instead of STDOUT

例子:docker save -o mysql.tar mysql:latest

二 、 importación de acoplador

Exportar el contenedor como un archivo local

Usage:  docker export [OPTIONS] CONTAINER

Export a container's filesystem as a tar archive

Options:
  -o, --output string   Write to a file, instead of STDOUT
  
例子:docker export -o mysql.tar

Tres, carga en el acoplador

Leer archivo de imagen de local

Usage:  docker load [OPTIONS]

Load an image from a tar archive or STDIN

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load output

例子: docker load -i mysql.tar

四 、 importación de acoplador

Crear una imagen desde un archivo local

Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

Import the contents from a tarball to create a filesystem image

Options:
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Set commit message for imported image

例子:docker import mysql.tar

Sugerencias: generalmente use una combinación de guardar y cargar, y use una combinación de exportación e importación.

El autor tiene algo que decir.

Bueno, a partir de esta publicación, volví a comprometerme con él, porque se modificó el contenido del contenedor que importé en la ventana acoplable. Después de reiniciar, no tendrá efecto y no se ha encontrado ningún método útil. Si tiene una solución, deje un mensaje para decirle al autor, se lo agradeceré, pero este blog todavía puede usarse como mis notas para una revisión posterior, el método final que uso es cerrar Hyper-v cuando necesito usar una máquina virtual .

1,如果用docker,
第一步:在控制面板中勾选Hyper -v
第二步:在cmd,以管理员身份运行:
bcdedit /set hypervisorlaunchtype auto
第三步;重启

2,开启虚拟机linux
第一步:在控制面板中取消勾选Hyper -v
第二步:在cmd中,以管理员身份运行:
bcdedit /set hypervisorlaunchtype off
第三步;重启

Referencia del método: incompatibilidad de docker y máquina virtual

Supongo que te gusta

Origin www.cnblogs.com/lomtom/p/12686672.html
Recomendado
Clasificación