Docker almacenamiento persistente, volumen de datos

Después de reiniciar el contenedor de Docker, podemos modificarlo y eliminarlo, etc.
Si es un contenedor de una base de datos, los datos que contiene no quieren desaparecer a medida que desaparece el contenedor. Requiere almacenamiento persistente de datos.

Volumen de datos  

 

 

 Este es el Dockerfile de mysql en el Docker Hub. VOLUME significa que los datos generados se escriben en / var / lib / mysql en el host actual.

 

[miller @ docker4 ~ ] $ docker images 
REPOSITORY TAG ID DE IMAGEN TAMAÑO CREADO 
daocloud.io / library / mysql latest 9228ee8bac7a         Hace 11 días 547MB
[miller @ docker4 ~] $ docker run -d --name = mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD = true daocloud.io/library/ mysql 
e7945f20bc456038a110a9798299356c8e7912a22eceaaf4e2bd29880460ab6f
-e MYSQL_ALLOW_EMPTY_PASSWORD = true le dice a mysql que lo use sin contraseña.

https://hub.docker.com/_/mysql Aquí hay una explicación detallada de algunos parámetros. También puedes establecer una contraseña.

[miller @ docker4 ~ ] $ docker volume ls # Encontrará un lugar en el host para almacenar datos 
NOMBRE DEL VOLUMEN DEL CONDUCTOR 
local 283f5d6584642ae6d32d5e02fd1330855b501dd891ddf38c5b40428183c652c8 # Este es el 
local de redis 330b65bda44d9b9b09b2964622

 

[Miller @ docker4 ventana acoplable] volumen ventana acoplable $ inspeccionar 330b65bda64c22b0929443d9eaa2db28c3a2468f76876b706c8efdbcbf6e4919 
[ 
    { 
        " CreatedAt " : " 2020-04-11T20: 26: 36 + 08: 00 " ,
         " conductor " : " locales " ,
         " etiquetas " : nula ,
         "Puntos de Montaje" : "/ var / lib / docker / volume / 330b65bda64c22b0929443d9eaa2db28c3a2468f76876b706c8efdbcbf6e4919 / _data",
         " Nombre " : "330b65bda64c22b0929443d9eaa2db28c3a2468f76876b706c8efdbcbf6e4919 ",
         " Opciones " : nulo ,
         " Alcance " : " local " 
    } 
]

"Mountpoint": "/ var / lib / docker / volume / 330b65bda64c22b0929443d9eaa2db28c3a2468f76876b706c8efdbcbf6e4919 / _data" Esta ruta es 
la ruta del archivo en el host donde está instalada la ventana acoplable . Los datos generados por la base de datos se almacenarán aquí. El volumen no desaparecerá debido a la eliminación del contenedor.

 

Como el nombre del volumen no es amigable, puede definirlo usted mismo: alias:

[miller @ docker4 ~] $ docker run -d --name = mysql1 -v mysql: / var / lib / mysql -e MYSQL_ALLOW_EMPTY_PASSWORD = true daocloud.io/library/ mysql 
7b006082d7d9c1cc8f17dfaefda26afeac9202202202202202202202
-v mysql: / var / lib / mysql en este parámetro. El volumen [/ var / lib / mysql] en la raíz mysql Dockerfile hará lo mismo.
[miller @ docker4 ~ ] $ docker volume ls 
NOMBRE DEL VOLUMEN DEL CONDUCTOR 
local 330b65bda64c22b0929443d9eaa2db28c3a2468f76876b706c8efdbcbf6e4919 # redis 
local mysql # Volumen del contenedor mysql recién creado

 

Puede ir al contenedor MySQL e iniciar sesión en el cliente.

[miller @ docker4 ~] $ docker exec -it mysql1 / bin / bash 
root @ c057b8fbb3ad: / # mysql - u root Bienvenido al monitor MySQL. Los comandos terminan con; o \ g. Su ID de conexión MySQL es la versión de servidor 8 : 8.0 . 19 MySQL Community Server - GPL Copyright (c) 2000 , 2020 , Oracle y / o sus filiales. Todos los derechos reservados. Oracle es una marca registrada de Oracle Corporation y / o sus filiales. Otros nombres pueden ser marcas registradas de sus respectivos propietarios. Escriba ' ayuda; 'o ' \ h ' para obtener ayuda. Escriba ' \ c ' para borrar la declaración de entrada actual. mysql >

En esta base de datos, cree una biblioteca, luego detenga el contenedor mysql y luego elimine el contenedor.

[Docker4 Miller @ ~ ] $ acoplable PS 
puertos de contenedores de identificación el estado de la imagen creada los nombres de comandos 
c057b8fbb3ad daocloud.io / Library / MySQL    " Docker-entrypoint.s ... "    . 4 minutos hasta hace miembro . 4 minutos         3306 / TCP, 33060 / mysql1 TCP 
[Miller @ docker4 ~] $ docker rm- f mysql1 # detiene este contenedor y elimina 
mysql1
[miller @ docker4 ~ ] $ docker volume ls 
NOMBRE DEL VOLUMEN DEL CONDUCTOR 
local 330b65bda64c22b0929443d9eaa2db28c3a2468f76876b706c8efdbcbf6e4919 
local mysql # volume todavía está allí. Crea un contenedor más tarde y aún usa este volumen

# Como puede ver, cree un contenedor nuevamente. Si aún usa el mismo volumen. Puede continuar utilizando los datos originales. No hay perdida. 

[Miller @ docker4 ~] $ estibador plazo -d --name = mysql2 -v mysql: / var / lib / mysql -e MYSQL_ALLOW_EMPTY_PASSWORD = true daocloud.io/library/ MySQL 
f9cfe55e7e6d85a6c44bc177fb324051e5735e80dbf30c5224cbfd0c7f844181 
[Miller @ docker4 ~] $ estibador ejecutivo -es mysql2 mysql - u root Bienvenido al monitor MySQL. Los comandos terminan con; o \ g. Su ID de conexión MySQL es la versión de servidor 8 : 8.0 . 19 MySQL Community Server - GPL Copyright (c) 2000 , 2020 , Oracle y / o sus filiales. Todos los derechos reservados. Oracle esuna marca registrada de Oracle Corporation y / o sus afiliados. Otros nombres pueden ser marcas registradas de sus respectivos propietarios. Escriba ' ayuda; ' o ' \ h ' para obtener ayuda. Escriba ' \ c ' para borrar la declaración de entrada actual. mysql > mostrar bases de datos; + -------------------- + | Base de datos | + -------------------- + | acoplador | El | información_esquema | El | mysql | El | performance_schema | El | sys | + -------------------- + 5 filas en conjunto ( 0.01 seg)

 

Supongo que te gusta

Origin www.cnblogs.com/chengege/p/12682501.html
Recomendado
Clasificación