Docker-容器服务 Container Service02 (网络及存储篇)

2017年10月9日14:24:09 发表评论 2,216 views
广告也精彩

Docker Container Service02 网络设置

Docker-容器服务 Container Service02 (网络及存储篇)

一、容器网络访问原理

Docker-容器服务 Container Service02 (网络及存储篇)

1.1 网络类型

Docker-容器服务 Container Service02 (网络及存储篇)

二、Docker随机端口映射

 默认情况下,docker会创建一个桥接网卡[docker 0],docker有2种映射方式,一种是随机映射,一种是指定映射

提示:生产场景一般不使用随机映射,但是随机映射的好处就是由docker分配,端口不会冲突

docker 端口映射分为两种:

Docker-容器服务 Container Service02 (网络及存储篇)

1,运行容器,端口随机映射

[root@linux-node1 ~]# docker run -d -P nginx
635333a8372b97a7e011ed4d188a2e2315fa824abae903f288566b9c43659219
提示:物理机的32768被映射到80端口
-P代表随机映射
-d 后台运行 并输出ID

Docker-容器服务 Container Service02 (网络及存储篇)

2,web访问http://10.0.0.106:32768/

Docker-容器服务 Container Service02 (网络及存储篇),

3,我们可以看一下iptables查看Nat表

[root@linux-node1 ~]# iptables -t nat -vnL
-t 指定 表
-v 显示详细信息
-n 显示number 数字
-L  -list 显示所选链的所有规则

Docker-容器服务 Container Service02 (网络及存储篇)

4,我们可以使用docker logs [ID/Name]来查看日志

[root@linux-node1 ~]# docker logs 635333a8372b
10.0.0.1 - - [23/Jan/2018:09:59:08 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36" "-"
2018/01/23 09:59:08 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 10.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "10.0.0.106:32768", referrer: "http://10.0.0.106:32768/"
10.0.0.1 - - [23/Jan/2018:09:59:08 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://10.0.0.106:32768/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36" "-"

三、Docker指定端口映射,nginx8080端口

[root@linux-node1 ~]# docker run -d -p 10.0.0.106:8080:80 --name mynginx nginx
###将10.0.0.106的8080端口,映射到容器的80端口
3016eacefc8674c390fd6cc0318cbdcc5ebdfcded2bba11c670857b0b11fcb3e
[root@linux-node1 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
3016eacefc86        nginx               "nginx -g 'daemon of…"   11 seconds ago      Up 11 seconds       10.0.0.106:8080->80/tcp   mynginx

提示: -d代表后台运行 -p 指定端口 --name 指定名称

web访问http://10.0.0.106:8080/
Docker-容器服务 Container Service02 (网络及存储篇)
通过端口映射,我们就可以非常方便的去访问到容器内部的服务

3)docker 启动映射多端口

[root@linux-node1 ~]# docker run -d -p 443:443 -p 82:80 --name nginxv2 nginx
8fb7e9ae998a023520a9f46e1add4a297b052e326a0a89cfc0c2610a1c3e0179
[root@linux-node1 ~]# docker port nginxv2         ##通过port 查看nginxv2容器的端口映射关系
443/tcp -> 0.0.0.0:443
80/tcp -> 0.0.0.0:82

三、Docker数据管理介绍

2.1 Docker数据分为两种:

Docker-容器服务 Container Service02 (网络及存储篇)

数据卷:  -v /data
                -v src:dst
数据卷容器: --volumes-from

 可以将数据卷理解为挂载,可以将数据mount到docker镜像中,让我在docker镜像里写数据时,实际写入的是物理主机里面。如果容器多了,不方便管理

四、Docker数据卷应用

1)先启动个容器,挂在个data目录

[root@localhost ~]# docker run -it --name volume-test1 -v /data centos
[root@8c460ed42a9d data]# ls /data/             #容器下目录为空

2)那我们容器内的data,放在物理机的什么位置呢?

[root@localhost ~]# docker inspect  容器ID |grep Source  ##自定义容器ID
#在物理机上打开绝对路径 /var/lib/docker......

2.1 验证测试:【容器/data 目录与物理机的】

Docker-容器服务 Container Service02 (网络及存储篇)
Docker-容器服务 Container Service02 (网络及存储篇)

3) 指定映射目录 src(物理机目录):dst(容器目录)

[root@localhost _data]# docker run -it -v /opt:/opt --name centos01 centos  
##作用:特别用于开发 源代码目录直接映射到容器里,无需拷贝文件
##指定权限:rw 类似于nfs配置
##挂在单个文件

五、Docker数据卷容器应用(类似NFS)

数据卷设置
案例:我们创建一个容器,起名叫nginx-volume-test 挂载到容器中的/data目录下

数据卷容器就是可以让一个容器访问另一个容器的卷,不管这个容器是否运行都可以访问到。

1) 数据卷容器简单解释就是:它可以让这个数据在多个容器中共享

[root@linux-node1 ~]# docker run -it --rm --name volume-test3 --volumes-from nginx-volume-test2 centos /bin/bash
--volumes-from 另一个容器的名称
#此时我们登陆test3,发现有个data目录,在下面创建个文件
[root@afe226ae48cb data]# cd /data/
[root@afe226ae48cb data]# echo "qiuyuetao" > 1.txt 
[root@afe226ae48cb data]# cat 1.txt 
qiuyuetao

现在我们可以访问到nginx-volume-test2下面挂载的目录,这就实现**类似nfs的功能 **

root@572bc3d4fdc2:/data# cat /data/1.txt 
qiuyuetao

 提示:我们现在如果停掉test2 一样可以访问,数据卷容器还有一个好处是不管这个容器是否运行都会起作用,只要有容器在使用数据卷容器就无法删除

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: