Acoplable --- intercambio de datos y datos de persistencia

directorio

 

Datos entre un anfitrión y un .docker compartida

Concepto de volumen de datos (volumen de datos)

la persistencia de datos ventana acoplable

características de volumen de datos

volumen de datos Implementación

El intercambio de datos entre los dos recipientes .docker

Concepto de contenedores de volumen de datos

Para contenedores de volumen de datos


Datos entre un anfitrión y un .docker compartida

Concepto de volumen de datos (volumen de datos)

  • Cuando se utiliza el contenedor de estibador, se va a producir una serie de archivos de datos. Pero cuando cerramos contenedor, estos archivos de datos desaparecerán.
  • Si queremos mantener archivos de datos persistentes, y los datos pueden ser compartidos entre el anfitrión y el contenedor, que requiere el uso del volumen de datos.
  • volumen de datos acoplable del recipiente puede ser visto como disco de U, que está presente con uno o más contenedores, y para montar el contenedor estibador, pero sin combinar sistema de archivos.
  • docker no elimina su volumen de datos montado en el recipiente retirado.
  • Puede almacenar volúmenes de datos de aplicaciones ventana acoplable de datos, y los volúmenes de datos presentados en el contenedor forma cargador de muelle es un directorio que soportes compartidos entre varios contenedores.
  • volumen de datos Uso estibador, similar a un sistema de archivos con el montaje para montar el sistema de

la persistencia de datos ventana acoplable

  • Los datos generados durante la operación del buque no se escribirán en el espejo, el espejo para re-utilizar esto para comenzar un nuevo contenedor inicializará un espejo, añadirá una capa totalmente nueva para guardar datos en la lectura y escritura
  • ¿Quieres hacer la persistencia de datos, cargador de muelle proporcionará volúmenes de datos o el volumen del contenedor de datos para resolver el problema
  • Además, también puede presentar una nueva imagen a través de comprometerse a guardar los datos producidos

características de volumen de datos

  • volumen de datos se puede reutilizar o compartir datos entre el buque
  • El cambio puede tener efecto directo en el volumen de datos
  • Los datos sobre los cambios de volumen no están incluidos en la actualización de espejo
  • El ciclo de vida del volumen de datos sigue utilizando hasta que el contenedor no es

volumen de datos Implementación

  • Comando para montar el volumen de datos por
1.命令格式为:
docker run -it -v /宿主机的绝对路径目录:/容器内目录  镜像名 /bin/bash
#参数说明
#-v是指定挂载目录, /bin/bash进入docker环境
2.此条命令会在宿主机和容器内创建指定的目录,目录里的数据可以共享。此外可以使用
docker inspect 容器ID //查看数据卷的挂载结果
3.我们也可以给数据添加限制权限,比如宿主机只能读去数据卷的内容,可以使用以下命令:
docker run -it -v /宿主机绝对路劲目录:/容器内目录:ro 镜像名
另外,同样能够使用 docker inspect 容器ID 查看权限信息

实例如下:
[root@cloud mnt]# docker run -it -v /mnt/demo01:/demo02 httpd /bin/bash
root@6b4349ecc8d4:/usr/local/apache2# cd /
root@6b4349ecc8d4:/# ls
bin  boot  demo02  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var
root@6b4349ecc8d4:/# cd demo02/
root@6b4349ecc8d4:/demo02# ls
root@6b4349ecc8d4:/demo02# echo "123456" > 1.txt
root@6b4349ecc8d4:/demo02# ls
1.txt
root@6b4349ecc8d4:/demo02# exit
exit
[root@cloud mnt]# ls
demo01
[root@cloud mnt]# ls demo01/
1.txt
[root@cloud mnt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                      PORTS               NAMES
6b4349ecc8d4        httpd               "/bin/bash"         About a minute ago   Exited (0) 54 seconds ago                       nervous_buck
[root@cloud mnt]# docker inspect 6b4349ecc8d4
 "Mounts": [
            {
                "Type": "bind",
                "Source": "/mnt/demo01",
                "Destination": "/demo02",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

  • Añadir los volúmenes de datos por dockerfile
1.Dockerfile对于docker镜像而言就如同java中的某个类的.class文件对应上该类的.java文件
2.创建Dockerfile文件的方式:
首先在linux服务器根目录上新建docker文件夹并且建立Dockerfile文件
如docker run -it -v /宿主机绝对路径目录:/docker内目录 镜像名,相当于
vim /docker/Dockerfile
FROM 镜像名
VOLUME ["/生成的目录路径"] --privileged=true
CMD echo "successful building"
CMD /bin/bash
3.然后我们执行dockerfile文件(docker build和docker commit两个命令都可以建立docker镜像,但是docker commit需要在容器内进行,docker build不需要)
docker build -f /docker/Dockerfile -t 命名空间/镜像名 . (注意此处有一个.)

实例如下:
[root@cloud docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              6678c7c2e56c        13 days ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
[root@cloud docker]# 
[root@cloud docker]# cat Dockerfile 
# volume test
FROM nginx
VOLUME ["/demo03"] --privileged=true
CMD echo "successful building"
CMD /bin/bash

[root@cloud docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              6678c7c2e56c        13 days ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
[root@cloud docker]# docker build -f /docker/Dockerfile -t demo/nginx .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM nginx
 ---> 6678c7c2e56c
Step 2/4 : VOLUME ["/demo03"] --privileged=true
 ---> Running in 50d079f73f8e
Removing intermediate container 50d079f73f8e
 ---> 5fc8cf76cfb7
Step 3/4 : CMD echo "successful building"
 ---> Running in 5df40d4f6f6d
Removing intermediate container 5df40d4f6f6d
 ---> 62982b04da33
Step 4/4 : CMD /bin/bash
 ---> Running in d229329a482c
Removing intermediate container d229329a482c
 ---> 8257b617bbc8
Successfully built 8257b617bbc8
Successfully tagged demo/nginx:latest
[root@cloud docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
demo/nginx          latest              8257b617bbc8        3 seconds ago       127MB
nginx               latest              6678c7c2e56c        13 days ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
[root@cloud docker]# docker run -it -name demo demo/nginx /bin/bash
unknown shorthand flag: 'n' in -name
See 'docker run --help'.
[root@cloud docker]# docker run -it demo/nginx /bin/bash
root@06a79d51ebe0:/# ls
bin  boot  demo03  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var
root@06a79d51ebe0:/# 

El intercambio de datos entre los dos recipientes .docker

Concepto de contenedores de volumen de datos

  • Volumen de datos equivalente a un disco duro extraíble, y el volumen de datos de los contenedores corresponde a una pluralidad de disco duro móvil montados en un móvil de disco duro extraíble, para lograr la transferencia de dependencias de datos entre
  • explicación oficial ventana acoplable se da: un envase montaje nombrado volumen de datos, intercambio de datos en otro recipiente mediante el montaje del contenedor primario, el volumen de datos de carga del contenedor, el contenedor de volumen de datos llamada

Para contenedores de volumen de datos

  • El establecimiento del contenedor padre
1.命令格式为:
docker run -it --name 父容器名字 -v /容器内目录 镜像名 /bin/bash
  • Establecer niño hereda el recipiente contenedor primario
1.命令格式:
docker run -it --name 子容器 --volumes-from 父容器 镜像名 /bin/bash

 

Nota: Transferencia de la configuración de la información entre el recipiente, el volumen del ciclo de vida de los datos continuará hasta que haya ningún contenedor a utilizar hasta el volumen de datos. Mientras no es un contenedor que todavía está en uso del volumen de datos, entonces el volumen de datos puede tener intercambio de datos. Si cerramos el contenedor primario, todavía puede compartir datos entre la sub-recipiente, a través de la herencia y el contenedor secundario producción del nuevo contenedor, los mismos datos se pueden compartir con subcontenedor

Publicados 139 artículos originales · ganado elogios 168 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/qq_42761527/article/details/104935559
Recomendado
Clasificación