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]