博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker网络
阅读量:4568 次
发布时间:2019-06-08

本文共 2715 字,大约阅读时间需要 9 分钟。

Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。

  • 端口映射允许外部访问容器
  • --link 容器互联
  • 容器桥接网络
1.通过--link容器通信,给test2添加一个hosts解析记录docker run -d --name test2 --link test1 busybox /bin/sh -c "while true;do sleep 3600;done"test2可以ping通test1,反之不可以

但是--link是不推荐使用的,而是更强大的自定义docker网络链接容器

1.新建一个docker网络docker network create -d bridge my-net-d 参数指定 Docker 网络类型,有 bridge overlay2.连接容器运行一个容器并连接到新建的 my-net 网络$ docker run -it --rm --name busybox1 --network my-net busybox sh打开新的终端,再运行一个容器并加入到 my-net 网络$ docker run -it --rm --name busybox2 --network my-net busybox sh再打开一个新的终端查看容器信息$ docker container lsCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMESb47060aca56b        busybox             "sh"                11 minutes ago      Up 11 minutes                           busybox28720575823ec        busybox             "sh"                16 minutes ago      Up 16 minutes                           busybox1下面通过 ping 来证明 busybox1 容器和 busybox2 容器建立了互联关系。在 busybox1 容器输入以下命令/ # ping busybox2PING busybox2 (172.19.0.3): 56 data bytes64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.072 ms64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.118 ms用 ping 来测试连接 busybox2 容器,它会解析成 172.19.0.3。同理在 busybox2 容器执行 ping busybox1,也会成功连接到。/ # ping busybox1PING busybox1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.064 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.143 ms这样,busybox1 容器和 busybox2 容器建立了互联关系。

外部访问容器

容器中可以运行网络应用,但是要让外部也可以访问这些应用,可以通过-p或-P参数指定端口映射。

-P 参数会随机映射端口到容器开放的网络端口 [root@oldboy_python ~ 16:31:37]#docker run -d -P training/webapp python app.py

检查映射的端口

#宿主机ip:32768 映射容器的5000端口 [root@oldboy_python ~ 16:34:02]#docker ps -lCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMEScfd632821d7a        training/webapp     "python app.py"     21 seconds ago      Up 20 seconds       0.0.0.0:32768->5000/tcp   brave_fermi

查看容器日志信息

#不间断显示log docker logs -f cfd

也可以通过-p参数指定映射端口

#指定服务器的9000端口,映射到容器内的5000端口 [root@oldboy_python ~ 16:46:13]#docker run -d -p 9000:5000 training/webapp python app.pyc0b5a6278d0f4f2e9b9eba8680451111d8b911b61de0c37ea64cb337aefb854e

访问服务器的9000端口

(如果访问失败的话,检查自己的防火墙,以及云服务器的安全组)

查看指定容器的端口映射

[root@oldboy_python ~ 16:49:01]#docker port c0b5000/tcp -> 0.0.0.0:9000

查看容器内的进程

[root@oldboy_python ~ 16:49:05]#docker top c0bUID                 PID                 PPID                C                   STIME               TTY                 TIME                CMDroot                3926                3912                0                   16:46               ?                   00:00:00            python app.py

转载于:https://www.cnblogs.com/pyyu/p/9713054.html

你可能感兴趣的文章
Direct3D 索引缓存
查看>>
Eclipse开发环境的配置
查看>>
Java集合框架的学习
查看>>
elasticsearch结构化查询过滤语句-----4
查看>>
P4783 【模板】矩阵求逆
查看>>
Bootstrap 警告框(Alert)插件
查看>>
centos7 离线源码安装 postgresql-9.6.6
查看>>
浅谈软件测试
查看>>
C# winform端 通过HttpWebRequest进行post和get请求,数据格式为json,后台java端接收,其中有关传输特殊字符(\t,\r,',\n,n)等处理...
查看>>
4069: [Apio2015]巴厘岛的雕塑
查看>>
yii2常用路径获取
查看>>
18 | 眼前一亮:带你玩转GUI自动化的测试报告
查看>>
Gitlab修改默认端口
查看>>
功能规格说明书
查看>>
JavaScipt30(第七个案例)(主要知识点:数组some,every,findIndex方法)
查看>>
Android 采用HttpClient提交数据到服务器
查看>>
EL表达式概述
查看>>
word中批量修改图片大小
查看>>
Ext4 中 日期和时间的控件
查看>>
最长子序列问题
查看>>