下面就是对“详解Docker 容器互联方法”的完整攻略。首先需要知道,Docker 容器互联,是指在同一个 Docker 宿主机上,多个容器之间互相访问的技术,实现容器之间的通信。以下是具体实现的步骤和示例说明。
确定容器名称
首先,需要选择要互联的容器名称。可以通过命令docker ps
获取所有的正在运行的容器名称。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ae7c4c7d25f mysql:5.7 "docker-entrypo…" 5 hours ago Up 5 hours 3306/tcp, 33060/tcp mysql57
b146818b3ee8 nginx "/docker-entryp…" 3 days ago Up 3 days 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 8080/tcp nginx-web
在这个例子中,我们选择mysql57
和nginx-web
两个容器进行互联。
创建新的网络
接下来,需要为这些容器创建一个单独的网络。可以采用以下命令进行创建。
$ docker network create my-network
这个网络的名称为my-network
,可以根据需要自定义。
连接容器到网络
将容器连接到这个网络中。可以使用以下命令进行连接。
$ docker network connect my-network mysql57
$ docker network connect my-network nginx-web
这样,mysql57
和nginx-web
容器就连接到了my-network
这个网络中。这样它们就可以互相通信。
验证互联
接下来,需要验证容器之间的互联是否成功。可以进入其中一个容器访问另一个容器的服务来进行验证。
例如,在nginx-web
容器中,可以使用以下命令访问mysql57
容器。
$ docker exec -it nginx-web sh
# curl http://mysql57:3306
其中mysql57
是mysql57
容器的名称,3306
是mysql
服务的端口号。成功访问mysql57
容器的服务,表示容器之间已经成功互联。
示例1
例如,在nginx-web
容器中需要访问mysql57
容器的MySQL服务。可以在nginx-web
容器中的/usr/share/nginx/html/index.html
文件中添加以下连接MySQL的代码。
<?php
// Database credentials
$dbHost = 'mysql57';
$dbUsername = 'root';
$dbPassword = 'password';
$dbName = 'test';
// Create database connection
$conn = mysqli_connect($dbHost, $dbUsername, $dbPassword, $dbName);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
这样,就可以在nginx-web
容器中连接到mysql57
容器的MySQL服务,并访问test
数据库。
示例2
例如,一个应用需要使用到多个容器,可以采用docker-compose
进行管理。以下是一个包含两个容器的docker-compose.yml
文件,其中db
容器和wordpress
容器互相连接。
version: '2'
services:
db:
image: mysql:5.7
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
在这个例子中,wordpress
容器需要连接到db
容器的MySQL服务。可以通过指定WORDPRESS_DB_HOST
环境变量,连接到db
容器的MySQL服务。
以上就是“详解Docker 容器互联方法”的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Docker 容器互联方法 - Python技术站