docker --link容器互联

容器互联

--link可以通过容器名互相通信,容器间共享环境变量。
--link主要用来解决两个容器通过ip地址连接时容器ip地址会变的问题.


先创建启动mysql容器

# -dti:指定容器运行在交互模式下,并将其连接到终端。
# --name db:为容器指定名称 db,以便在后续操作中引用该容器。
# --restart=always:指定容器在退出时总是自动重启。
# -e MYSQL_ROOT_PASSWORD=redhat:设置 MySQL 的 root 用户密码为 redhat。
# -e MYSQL_DATABASE=blog:创建一个名为 blog 的数据库。

docker run -dti --name db --restart=always -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=blog  mysql:5.6

创建启动源容器wordpress

# docker run -dti --name 容器名 --restart=always -v 本地目录:容器内目录 -p 本地端口:容器端口 --link 数据库容器名:数据库容器别名 wordpress镜像

# -dti:指定容器运行在交互模式下,并将其连接到终端。
# --name blog:为容器指定名称 blog,以便在后续操作中引用该容器。
# --restart=always:指定容器在退出时总是自动重启。
# -v /web:/var/www/html:将宿主机上的 /web 目录映射到容器中的 /var/www/html 目录,实现数据持久化。
# -p 80:80:将容器内部的 80 端口映射到宿主机的 80 端口,以便外部网络可以访问容器中的网站。
# --link db:mysql:将容器与另一个名为 db 的容器连接起来,并设置别名为 mysql,以便在后续操作中引用该容器。

docker run -dti --name blog --restart=always -v /web:/var/www/html -p 80:80 --link db:mysql wordpress

当使用–link参数时,docker会自动在共享两个容器的变量。访问数据库的时候,不再是通过IP的方式来访问,而是通过容器名来访问.
在容器中执行: env | grep -i hub_name,会显示容器的的环境变量


实验:tomcat连接mysql

接下来在tomcat容器的webapps中配置msyql连接,数据源输入mysql的容器名即可。
–link 参数可以把两个容器连接为一组容器,一般用于连接mysql,而不用映射mysql的端口到宿主机

例如,tomcat和mysql建立link之后,在tomcat里可以直接ping通mysql的容器名.
在tomcat配置MySQL连接的文件中不需要再写入localhost或者ip地址,直接写入mysql容器名即可连接到mysql数据库


创建启动mysql容器

# -dti:指定容器运行在交互模式下,并将其连接到终端。
# --name mysql:为容器指定名称mysql,以便在后续操作中引用该容器。
# --restart=always:指定容器在退出时总是自动重启。
# -e MYSQL_ROOT_PASSWORD=12345:设置 MySQL的密码
docker run -dti --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

创建启动tomcat容器 --link连接mysql容器

# -dti:指定容器运行在交互模式下,并将其连接到终端。
# --name tomcat:为容器指定名称 tomcat
# --restart=always:指定容器在退出时总是自动重启。
# -p 8080:8080:将容器内部的 8080 端口映射到宿主机的 8080 端口
# --link mysql:将容器与另一个名为 mysql 的容器连接起来
# -v /webapps:/usr/local/tomcat/webapps:将宿主机上的 /webapps 目录映射到容器中的 /usr/local/tomcat/webapps 目录

docker run -dti --name tomcat --restart=always -p 8080:8080 --link mysql -v /webapps:/usr/local/tomcat/webapps tomcat

接下来在tomcat容器的webapps中配置msyql连接,数据源输入mysql的容器名即可。
tomcat和mysql建立link之后,在tomcat里可以直接ping通mysql的容器名.
在tomcat配置MySQL连接的文件中不需要再写入localhost或者ip地址,直接写入mysql容器名即可连接到mysql数据库.

  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值