场景案例
需要通过容器部署一个wordpress应用,wordpress容器依赖mysql容器,二者要相互通信
一、--link方式
1. 创建mysql5.7容器
docker run -d --name=db1 -e MYSQL_DATABASE=wordpress -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- 设置mysql的root密码为123456
- 同时创建好名为wordpress的数据库
2. 创建wordpress容器,并关联mysql容器
docker run --name wp1 --link db1:mysql -d -p 9011:80 wordpress
- --link db1:mysql 表示该容器要与db1容器通信,:mysql表示db1容器的别名
- 然后就可以在wp1容器里使用db1或者mysql作为hostname访问db1容器了,wp1容器中会dns自动解析db1或者mysql
这里有篇文章写的比较全面
二、network方式
1. 创建网络
docker network create wpnet
2. 创建mysql5.7容器,并加入到wpnet网络里
docker run -d --name=db2 -e MYSQL_DATABASE=wordpress -e MYSQL_ROOT_PASSWORD=123456 --network wpnet --network-alias mysql -d mysql:5.7
- --network wpnet:将容器加入到wpnet网络中(如果不指定默认是bridge网络)
- --network-alias mysql:指定容器在wpnet网络中的别名是mysql
3. 创建wordpress容器,并加入到wpnet网络里
docker run --name wp2 --network wpnet --network-alias wordpress -d -p 9012:80 wordpress
- --network wpnet:将容器加入到wpnet网络中,与mysql数据库在同个网络中
- --network-alias wordpress:指定容器在网络中的别名是wordpress,这个可以不要,因为在其他容器中基本不访问这个容器
- 在wp2中要访问db2容器,则可以通过网络别名mysql作为hostname访问,同理--link容器内会自动dns解析
可以通过docker network inspect wpnet
查看那些容器在wpnet网络里
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。