内容简介:三个容器我们需要让
场景
三个容器
-
digger-app: 启动 API 服务,依赖redis和mysql -
digger-redis:redis服务 -
digger-mysql:mysql服务
我们需要让 digger-app 容器内运行的服务能够访问 digger-redis 和 digger-mysql 容器。
方法一: --link
--link 的格式为 --link name:alias , name 为需要连接到的容器的 name , alias 是给这个连接取个别名。
首先启动 redis 服务和 mysql 服务:
# redis docker run --name digger-redis -d redis:5.0.3-alpine # mysql docker run --name digger-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.25
如果不指定 name ,docker 会随机生成一个 name,使用 docker ps 可以查看到运行容器的 name。
在启动 digger-app 时,指定 --link 参数:
docker run --name digger-api --link digger-redis:redis --link digger-mysql:mysql -d -p 3000:3000 your-image
这样在 digger-api 中就能通过 连接名 访问到对应的服务了,如与 digger-redis 的 link 别名为 redis ,那么在 digger-api 代码中,可以指定 redis 的 host 为 redis ,以 node.js 举例:
// redis.js
const redis = require('redis');
const client = redis.createClient({
host: 'redis',
port: 6379
});
// mysql.js
const mysql = require('mysql');
const connection = mysql.createConnection({
host : 'mysql',
user : 'root',
password : 'root',
database : 'my_db'
});
connection.connect();
使用 docker exec 命令进入容器,使用 ping 命令也可以查看容器是否互联成功:
事实上,在 digger-api 容器内,如果查看 hosts 文件,可以发现 docker 已经将另外两个容器配置在了 hosts 中:
/app # cat /etc/hosts 127.0.0.1 localhost ... 172.17.0.6 redis 7a6409598773 cache-redis 172.17.0.5 mysql f08bf0e0bf18 digger-mysql 172.17.0.7 6eb8dab1e6db
方法二: --network
随着 Docker 网络的完善,更建议将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 --link 参数。
使用 --network 命令可以指定容器运行的网络,通过将多个容器指定到同一个网络可以让容器间相互访问。
创建网络
docker network create -d bridge my-net
指定网络
# redis docker run --name digger-redis -d --network my-net redis:5.0.3-alpine # mysql docker run --name digger-mysql -e MYSQL_ROOT_PASSWORD=root -d --network my-net mysql:5.7.25 # api docker run --name digger-api --network my-net -d -p 3000:3000 your-image
不过需要注意这时候就没有连接的别名了,在容器里面, host 直接使用对方容器的 name 访问即可。
方法三: docker compose
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。
新建 docker-compose.yml 文件,编写如下
version: "3"
services:
digger-api:
image: "express:v1"
ports:
- "3000:3000"
digger-mysql:
image: "mysql:5.7.25"
environment:
- MYSQL_ROOT_PASSWORD=root
digger-redis:
image: "redis:5.0.3-alpine"
docker compose 的官方文档查看 这里 。
然后使用 docker-compose up -d 启动即可,容器会在后台运行。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Windows与Linux文件系统互访的几种方法
- 容器技术之容器镜像篇
- 多线程六 同步容器&并发容器
- 容器技术第一讲:容器入门篇
- Docker容器Centos容器安装openssh
- 房多多容器化和容器云实践
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Producing Masculinity
Michele White / Routledge / 2019-3 / $39.95
Thoughtful, witty, and illuminating, in this book Michele White explores the ways normative masculinity is associated with computers and the Internet and is a commonly enacted online gender practice. ......一起来看看 《Producing Masculinity》 这本书的介绍吧!