Home  >  Article  >  Operation and Maintenance  >  What are the communication methods between containers in Docker?

What are the communication methods between containers in Docker?

WBOY
WBOYOriginal
2022-02-07 10:38:1012746browse

Communication methods between containers in Docker: 1. Use the container ip to access; 2. Use the host’s “ip:port” to access; 3. Use link to establish a connection for communication; 4. Use “User-defined networks" to communicate.

What are the communication methods between containers in Docker?

The operating environment of this tutorial: linux7.3 system, docker-1.13.1 version, Dell G3 computer.

What are the communication methods between containers in Docker

1. Access through the container ip

After the container is restarted, the ip will change. Accessing via container IP is not a good solution.

2. Access through the host's ip:port

Access through the host's ip:port can only rely on the process listening on the exposed port for limited communication.

3. Establish a connection through link (officially not recommended)

When running a container, specify the parameter link so that the source container and the linked container can communicate with each other, and the accepted container can Obtain some data from the source container, such as environment variables.

# 源容器:mysql
docker run -itd --name test-mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
#被链接容器 centos
docker run -itd --name test-centos --link test-mysql:mysql  centos /bin/bash
#进入test-centos
docker exec -it test-centos /bin/bash

You can enter directly through the link name or the alias you took when linking:

What are the communication methods between containers in Docker?

What are the communication methods between containers in Docker?

Establish a connection through link The linked container can ping the source container, but not the other way around.

View environment variables on the linked container

What are the communication methods between containers in Docker?

#The linked container will inherit the environment variable information of the source container.

Unlike host entries in /etc/hosts, the IP address stored in the environment variable is not automatically updated if the source container is restarted. We recommend using the host entry in /etc/hosts to resolve the IP address of the linked container.

In addition to environment variables, Docker also adds the source container’s host entry to the /etc/hosts file.

What are the communication methods between containers in Docker?

If the source container is restarted, the /etc/hosts file on the link container will be automatically updated with the source container's new IP address, allowing link communication to continue.

4. Create a bridge network through User-defined networks (recommended)

docker network, and assign the container to the newly created bridge network when docker run, so that the same bridge network Containers in can access each other.

Create network

docker network create test-network

When starting the container, join the created network

docker run -it --network test-network --network-alias mysql  -e MYSQL_ROOT_PASSWORD=123 mysql:5.7

Start the linked container

 docker run -it --network test-network --network-alias centos  centos /bin/bash

What are the communication methods between containers in Docker?

Recommended learning: "docker video tutorial"

The above is the detailed content of What are the communication methods between containers in Docker?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn