Docker
Contenedores de conexión
Buscar..
Parámetros
Parámetro | Detalles |
---|---|
tty:true | En docker-compose.yml, el indicador tty: true mantiene el comando sh del contenedor en espera de entrada. |
Observaciones
Los controladores de red del host
y del bridge
pueden conectar contenedores en un solo host de docker. Para permitir que los contenedores se comuniquen más allá de una máquina, cree una red de superposición. Los pasos para crear la red dependen de cómo se administran los hosts de la ventana acoplable.
- Modo de enjambre: la
docker network create --driver overlay
- ventana acoplable / enjambre : requiere un almacén externo de clave-valor
Red docker
Los contenedores en la misma red de ventana acoplable tienen acceso a los puertos expuestos.
docker network create sample
docker run --net sample --name keys consul agent -server -client=0.0.0.0 -bootstrap
Consul's Dockerfile expone 8500
, 8600
y varios puertos más. Para demostrar, ejecute otro contenedor en la misma red:
docker run --net sample -ti alpine sh
/ # wget -qO- keys:8500/v1/catalog/nodes
Aquí el contenedor del cónsul se resuelve a partir de las keys
, el nombre dado en el primer comando. Docker proporciona resolución de DNS en esta red, para encontrar contenedores por su --name
.
Docker-componer
Las redes se pueden especificar en un archivo compuesto (v2). Por defecto, todos los contenedores están en una red compartida.
Comience con este archivo: example/docker-compose.yml
:
version: '2'
services:
keys:
image: consul
command: agent -server -client=0.0.0.0 -bootstrap
test:
image: alpine
tty: true
command: sh
Al iniciar esta pila con docker-compose up -d
se creará una red con el nombre del directorio principal, en este caso example_default
. Consulte con la docker network ls
> docker network ls
NETWORK ID NAME DRIVER SCOPE
719eafa8690b example_default bridge local
Conéctese al contenedor alpino para verificar que los contenedores puedan resolverse y comunicarse:
> docker exec -ti example_test_1 sh
/ # nslookup keys
...
/ # wget -qO- keys:8500/v1/kv/?recurse
...
Un archivo de redacción puede tener una sección de networks:
nivel superior para especificar el nombre de la red, el controlador y otras opciones del comando de red de la ventana acoplable .
Vinculación de contenedores
La --link
acoplable --link
argumento de link:
, y link:
secciones --link
acoplable-componer --link
alias a otros contenedores.
docker network create sample
docker run -d --net sample --name redis redis
Con el enlace, ya sea el nombre original o la asignación, se resolverá el contenedor redis.
> docker run --net sample --link redis:cache -ti python:alpine sh -c "pip install redis && python"
>>> import redis
>>> r = redis.StrictRedis(host='cache')
>>> r.set('key', 'value')
True
Antes de 1.10.0
contenedor de la 1.10.0
acoplable 1.10.0
, también configure la conectividad de la red, el comportamiento ahora es proporcionado por la red de la ventana acoplable. Los enlaces en versiones posteriores solo proporcionan un efecto legacy
en la red de puente predeterminada.