docker理解二
<此文仅仅个人对于docker的理解,不涉及任何其他的东西>
随着对docker理解的深入脑海里总是会浮现几个问题:
1. docker到底是什么
docker现实中究竟是怎么用的?
*第一个问题再理解一的时候已经说了。 现在说说第二个问题:
我们可以先谈谈刚开始的时候数据是怎么访问的?
- 如果是单服务器的时候(一般个人的时候都是单服务器的),也就是 资源文件(图片啊啥的)和逻辑文件(php,java等文件)放在一起,数据库也在那个服务器里面。我们要访问数据库的时候是通过php来连接服务器上的数据库,因为放在一起,所以服务器就相当于php的本地。
如果多服务器的时候呢,比如项目做大了,一个服务器不够,需要多个服务器(你可以理解为负载均衡),比如:图片放在一个服务器上面,数据库放在其他服务器上面,逻辑文件放在另一个服务器上面单独处理。这样就有三个服务器了,可以很大提高速度。
刚开始用docker的时候会想docker是不是这样的玩的:
先在docker运行一个linux容器——>容器里面安装nginx、mysql、php等——>如果别人要用那就composer这个docker给他就好?
其实一开始这样想是不对的。docker明确表示并不建议这么做,每一个容器并不适合镶嵌多层。
所以提供了一个network
.
docker network create -d bridge name #创建一个network
docker run -itd --name test1 --network name centos /bin/bash #生成一个容器并加入name网络
docker run -itd --name test2 --network name centos /bin/bash
docker exec -it test1 /bin/bash #进入容器之后
[root@843a3eeed8ba /]# ping tes2
#会发现 test1和test2相互都能ping通
这里其实就是docker的实际用法,也就是:
在images模板里面,建立一个容器,比如 php容器和nginx容器和mysql容器,加入同一个网络,相互之间通过网络连接通信。