Docker基本管理--Dockerfile镜像制作(Docker技术集群与应用)
容器端口映射;
容器间通信;
容器数据卷;
DockerFile;
容器端口映射:
实验环境:紧接着之前的快照,将该文件夹拉取进去;
然后执行导入的脚本,会将该目录下所有打包好的镜像文件导入进入。
然后进行查看;
这样简单的一个实验环境就搭建好了;
然后创建容器;
登录到容器中;
获取容器的IP;
然后退出容器尝试访问Apache服务;
发现可以访问;
但是创建该容器的时候没有为该容器映射外部的访问端口,所以外部的客户端无法访问到该容器;
大概解释为:
外部客户端:
windos宿主机做客户端;
内部客户端:
docker主机上做客户端;
再以该镜像为支持,创建一个容器,但是创建的时候加上-P的选项;
看下会发生什么样的事情;
-P:是port的意思,即端口;
加上-P的选项,自动帮助我们完成端口映射的策略;
0.0.0.0:为docker主机的IP;
32768:映射到该容器的80端口;
尝试访问:
IP要访问docker主机的IP,但是端口要访问容器分配的端口;
然后再以外部客户端的身份尝试访问;
但是注意:
端口号是随机分配的,例如DHCP中的地址池一样;
创建的时候手动指定要映射的端口即可;
-P:自动分配映射端口;
-p:手动指定映射端口;
8080为docker主机提供的端口,后面还是容器的端口;
这样就可以固定端口去访问了,而不是让docker主机自动为容器分配一个随机的端口;
如何自己指定网页文件,那么就需要登录到容器中了;
但是这种方式麻烦且不具备永久性,这些文件会随着容器的删除也消失的;
所以不建议把数据放到容器里面存放;
容器间通信:
先创建一个容器:并指定容器的名称;
然后创建第二个容器,且在创建的时候指定链接;--link;
冒号前是:把web02链接到web01;web01作为web02的源容器,web02作为web01的接收容器;
冒号后是:在web02要登录进去的话,为web01起的一个别名。
进入到web02中进行验证;
会在其hosts文件中,记录源容器的IP和名称;
还可以ping其容器的IP;
还可以登录到web01中尝试访问web02;
可以发现hosts文件中并没有保存web02相关的信息;
不过可以用IP的方式进行访问;
另外一种容器间通信的方式:
以逻辑子网的方式实现容器间通信。
为docker环境创建不同的逻辑子网;
然后在创建容器的时候直接让容器加入到指定的网络中;