当先锋百科网

首页 1 2 3 4 5 6 7

Docker 是一种虚拟化技术,它能够帮助我们轻松地运行多个容器。多个容器之间相互隔离、独立运行,但是有时需要让多个容器之间进行交互和通信。

docker连接多个容器(docker compose 连接外部容器)

下面我们来学习如何连接多个 Docker 容器。


# 创建一个网络
docker network create mynetwork

# 在 mynetwork 网络中运行一个 MySQL 容器
docker run -d --name mysql --net mynetwork -e MYSQL_ROOT_PASSWORD=123456 mysql

# 在 mynetwork 网络中运行一个 Web 容器
docker run -d --name web --net mynetwork -p 80:80 nginx

在上面的代码中,我们创建了一个名为 mynetwork 的网络,并启动了两个容器:mysql 和 web。两个容器都加入了 mynetwork 网络,这意味着它们可以相互通信。

接下来,我们需要在 Web 容器中配置数据库连接信息,才能让 Web 应用程序访问 MySQL 数据库。


# 进入 Web 容器
docker exec -it web /bin/bash

# 编辑配置文件
vi /etc/nginx/conf.d/default.conf

# 在 default.conf 中添加以下内容
location /mysql {
    proxy_pass   http://mysql:3306;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

# 重启 nginx 服务
service nginx restart

在上面的代码中,我们进入了 Web 容器,并编辑了其内置的 Nginx 配置文件 default.conf。我们添加了一个名为 /mysql 的 location,指向 MySQL 容器的 3306 端口。这样,在 Web 容器中访问 /mysql 就相当于访问了 MySQL 容器的数据库。

最后,我们需要测试一下我们的容器是否连接成功。


# 进入 Web 容器
docker exec -it web /bin/bash

# 安装 mysql 客户端工具
apt-get update && apt-get install -y mysql-client

# 连接 MySQL 数据库
mysql -h mysql -u root -p

# 输入密码,登录 MySQL 数据库
Enter password: 123456

# 成功登录后,就可以执行 SQL 语句啦

在上面的代码中,我们进入了 Web 容器,并安装了 mysql 客户端工具。接着,我们使用 mysql 命令连接 MySQL 数据库,并成功登录后,我们可以执行一些 SQL 语句来测试连接是否成功。

到此,我们就成功地连接了多个容器,并能在这些容器之间进行通信和交互。