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

What are the communication methods between containers in Docker?

WBOY
Release: 2022-02-07 10:38:10
Original
12921 people have browsed it

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
Copy after login

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
Copy after login

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
Copy after login

Start the linked container

 docker run -it --network test-network --network-alias centos  centos /bin/bash
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template