8.1

问题1.

在林老师的指导下,自己一步步的安装了本地的nginx,使web-api跑在了本地(这样做的原因,在服务跑在容器中,代码码通过volum的方式映射在容器中,修改代码后若不重新启动容器,则代码无法生效,降低开发的效率),问题:就是有什么办法可是代码跑在容器中,修改代码后不同手动重启容器而使代码生效。

这个过程学到的:docker-compose 中配置时links和volum的原理:

Links:见3
Volume:Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上,添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。

问题2:

配置过程中使用到软连接ln -s 文件名,将文件软连接到当前文件夹下:(知识补充)

硬链接:多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。

软连接:另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

收获:

学会了webstorm 对web-api的debug 调试

问题4:

本机和容器的通信与容器之间的互相通信?
通常,我们使用docker ps 的时候,会看见本机的某个端口映射到容器的某个端口:可通过容器的定义,加本机的端口,访问到内部的容器。

容器内部的通信:可以通过link进行,如A容器link一个数据库,那么启动容器时,将先启动数据库,将数据库的ip写入到A的hosts中(/etc/hosts,及主机的hosts),则A可以访问数据库。这就是link 可以使两个容器之间通信的原理。

参见文章:http://www.jianshu.com/p/4b1097b5b937

你可能感兴趣的:(8.1)