Docker et Linux : Comment implémenter la communication réseau entre conteneurs ?
Citation :
La technologie des conteneurs joue un rôle important dans le développement et le déploiement d'applications modernes. En utilisant la technologie des conteneurs, nous pouvons regrouper l'application et ses dépendances dans un conteneur indépendant, garantissant ainsi la portabilité et la cohérence de l'application. Cependant, lorsque nous devons connecter plusieurs conteneurs pour permettre la communication réseau, la configuration de la communication réseau entre les conteneurs devient très importante. Cet article explique comment implémenter la communication réseau entre les conteneurs dans les environnements Docker et Linux.
Tout d'abord, nous devons créer un réseau de communication entre les conteneurs. Nous pouvons créer un réseau pont nommé my_network à l'aide de la commande suivante :
$ docker network create my_network
Ensuite, nous devons créer et exécuter le conteneur Web pour fournir des services Web. Nous pouvons utiliser la commande suivante pour créer un conteneur nommé web_container et le connecter au réseau my_network :
$ docker run -d --name web_container --network my_network web_image
Où, web_image est l'image du conteneur Web que nous avons nous-mêmes construite.
Ensuite, nous devons créer et exécuter le conteneur de base de données pour fournir des services de base de données. Nous pouvons utiliser la commande suivante pour créer un conteneur nommé db_container et le connecter au réseau my_network :
$ docker run -d --name db_container --network my_network db_image
Parmi eux, db_image est l'image du conteneur db que nous avons nous-mêmes construite.
Maintenant, nous avons créé deux conteneurs et les avons connectés au même réseau. Ensuite, nous devons nous assurer que le conteneur Web peut accéder à la base de données fournie par le conteneur de base de données.
Dans le conteneur web, nous pouvons utiliser le nom de db_container pour y accéder. Par exemple, nous pouvons utiliser la chaîne de connexion suivante dans le code du conteneur Web pour nous connecter à la base de données :
jdbc:mysql://db_container:3306/my_database
Dans cette chaîne de connexion, db_container est le nom du conteneur de base de données, 3306 est le numéro de port par défaut de la base de données, et my_database est le nom de la base de données.
Grâce aux étapes ci-dessus, nous avons réussi à implémenter la communication réseau entre le conteneur Web et le conteneur de base de données. Le conteneur Web peut accéder au service de base de données fourni par le conteneur de base de données via le nom du conteneur.
Conclusion :
Dans les environnements Docker et Linux, nous pouvons réaliser une communication réseau entre les conteneurs en configurant le mode réseau et en créant un réseau. En configurant correctement les connexions réseau, nous pouvons établir des canaux de communication entre les conteneurs, permettant un déploiement multi-conteneurs et une architecture distribuée des applications.
Exemple de code :
Dockerfile pour le conteneur Web :
FROM ubuntu:latest RUN apt-get update RUN apt-get install -y apache2 EXPOSE 80 CMD ["apache2ctl", "-D", "FOREGROUND"]
Dockerfile pour le conteneur de base de données :
FROM ubuntu:latest RUN apt-get update RUN apt-get install -y mysql-server EXPOSE 3306 CMD ["mysqld"]
Exemple de code Java dans le conteneur Web :
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Main { public static void main(String[] args) { String url = "jdbc:mysql://db_container:3306/my_database"; String user = "root"; String password = "password"; try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement()) { String query = "SELECT * FROM my_table"; ResultSet rs = stmt.executeQuery(query); while (rs.next()) { System.out.println(rs.getString("column1")); } } catch (SQLException e) { e.printStackTrace(); } } }
Ce qui précède explique comment implémenter la communication réseau entre les conteneurs dans les environnements Docker et Linux Introduction et des exemples. Avec une configuration réseau et des paramètres de connexion appropriés, nous pouvons facilement communiquer entre les conteneurs et créer des architectures d'applications plus flexibles et évolutives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!