nihaogirl 发表于 2019-2-21 06:42:03

Docker之容器互联实现容器间通信

  自定义容器名

  连接系统依据容器名称执行,所以首先需要自定义容器名称。
  使用--name标记可以为容器自定义名称:
  

# docker run -d --name mysqldb -p3306:3306 -e MYSQL_ROOT_PASSWORD=fanshine mysql/mysql-server  使用docker ps 查看容器的命名:http://s1.运维网.com/images/20180905/1536120836606275.png

  也可以使用docker inspect来查看容器名称:
# docker inspect -f "{{ .Name }}" bf3bacf5c91d  注意:容器名称是唯一的,如果创建了mysqldb,需要在此创建需要将同名容器删除掉在去创建。

  容器互联
  容器互联大体有以下三种方式,使用link进行容器互联:

[*]  基于volume的互联
[*]  基于link的互联
[*]  基于网络的互联
  
  使用--link参数让容器间进行交互:
  首先创建数据库容器:


# docker run -d --name mysqldb -p3306:3306 -e MYSQL_ROOT_PASSWORD=fanshine mysql/mysql-server然后创建web容器,并将其连接到db容器:


# docker run -d -p 80:80 --name nginxweb --link mysqldb:mysqldbnginx/nginx-server  此时web容器与db容器建立了互联关系。

  注意:--link参数格式为--link name:alias,其中name是要链接的容器名称,alias是这个连接的名称。
  Docker通过两种方式为容器公开连接信息:

[*]  环境变量
[*]  更新/etc/hosts文件
使用env命令查看web容器的环境变量:
# docker run --rm --name nginxweb3 --link mysqldb:mysqldbnginx/nginx-server env  其中MYSQLDB_开头的环境变量是供web容器连接db容器使用。
  登陆web容器ping通mysqldb:http://s1.运维网.com/images/20180905/1536121851792276.png



页: [1]
查看完整版本: Docker之容器互联实现容器间通信