Gestión del volumen de datos de Docker + interconexión de contenedores + mapeo de puertos

Visión general

Cuando se utiliza un contenedor, se generarán algunos registros u otros archivos, o necesitamos hacer una copia de seguridad de los datos en el contenedor, o incluso compartir datos entre múltiples contenedores, lo que implicará la operación de gestión de datos del contenedor.
Hay dos formas principales de administrar los datos en un contenedor: ** 1. Volumen de datos ** 2. Contenedor
de volumen de datos Volumen de datos: monta el espacio de almacenamiento del sistema host
Contenedor de volumen de datos: monta el espacio de almacenamiento del contenedor
si el usuario necesita entre los contenedores La forma más sencilla de compartir algunos datos que se actualizan continuamente es utilizar un contenedor de volumen de datos. El contenedor de volumen de datos es en realidad un contenedor normal, que se utiliza específicamente para proporcionar volúmenes de datos para que otros contenedores los monten.

Inserte la descripción de la imagen aquí

¡Dale! ¡Mostrar! !

Operaciones de volumen de datos

Monte el directorio de host
para compartir datos entre el contenedor y el host

[root@5centos /]# docker run -v /tset1:/doctest1 --name web1 -it 20.0.0.5:5000/httpd /bin/bash
[root@d7ef3f247970 /]# cd doctest1/
[root@d7ef3f247970 doctest1]# touch abc.mp4

宿主机验证
[root@5centos /]# cd tset1/
[root@5centos tset1]# ls
abc.mp4

Contenedor de volumen de datos


Uso compartido de datos de contenedor y contenedor Crear prueba de contenedor de volumen de datos50

[root@5centos /]# docker run --name test50 -v /data1 -v /data2 -it centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd
Status: Downloaded newer image for centos:latest
[root@de27be0d57bb /]# ls
bin    data2  etc   lib    lost+found  mnt  proc  run	srv  tmp  var
data1  dev    home  lib64  media       opt  root  sbin	sys  usr
[root@de27be0d57bb /]# cd data1
[root@de27be0d57bb data1]# touch 123.avi
[root@de27be0d57bb data1]# cd /data2
[root@de27be0d57bb data2]# touch 456.avi

Cree un nuevo contenedor test60 y monte el directorio del contenedor de volumen de datos

[root@5centos ~]# docker run -it --volumes-from test50 --name test60 centos /bin/bash
[root@a40a840da387 /]# ls
bin    data2  etc   lib    lost+found  mnt  proc  run	srv  tmp  var
data1  dev    home  lib64  media       opt  root  sbin	sys  usr
[root@a40a840da387 /]# cd data1
[root@a40a840da387 data1]# ls
123.avi
[root@a40a840da387 data1]# cd /data2
[root@a40a840da387 data2]# ls
456.avi

La asignación de puertos

-p especifica el puerto 2080 para mapear el 80 interno

[root@5centos ~]# docker run -d -p 2080:80 httpd:centos 
6df38d1adcbeb677cd66dc2f25df35a1ba924ab0fad6113860a52481fab45097

-P puerto aleatorio

[root@5centos ~]# docker run -d -P httpd:centos 
0b01169861db122032bb512e23977fd8660fd5c7a7485f0df558cac089b9c5fc

Interconexión de contenedores

创建容器 apa01,端口随机
[root@5centos /]# docker run -itd -P --name apa01 centos:8 /bin/bash
4c1f79e9d7cea3f747975b79388ae3a6bb41df81d8bbb31a7f8a5f16f7993c1b

创建容器 apa02,端口随机,a1是别名,随便取,记得住就行
[root@5centos /]# docker run -itd -P --name apa02 --link apa01:a1 centos:8 /bin/bash
ae9d8131a2689be66393174eb9f6a6e1a5c36abe50400bdffe47198a33b0fdb8

Ingrese al contenedor,
haga ping prueba apa01

[root@5centos /]# docker exec -it apa01 /bin/bash
[root@4c1f79e9d7ce /]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
40: eth0@if41: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

apa02

[root@ae9d8131a268 /]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
42: eth0@if43: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.4/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

prueba

[root@ae9d8131a268 /]# ping 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.111 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.059 ms
64 bytes from 172.17.0.3: icmp_seq=4 ttl=64 time=0.061 ms
^C
--- 172.17.0.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.059/0.072/0.111/0.023 ms

¡Ya comunícate!

Supongo que te gusta

Origin blog.csdn.net/Ora_G/article/details/108700436
Recomendado
Clasificación