一、端口映射实现访问容器

1.1、-P参数(大写),会随机映射一个端口至容器内部开放的端口

[root@CentOS702 ~]# docker run -d -P training/webapp python app.py
7a8bd82f251d7e59e0c413c577c4986e02f2d62284e8b01fe215f8c49fd6bd61
[root@CentOS702 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
7a8bd82f251d        training/webapp     "python app.py"     6 seconds ago       Up 5 seconds        0.0.0.0:32781->5000/tcp   quizzical_brattain
[root@CentOS702 ~]# docker logs -f 7a8b* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.17.218 - - [31/May/2017 09:00:23] "GET / HTTP/1.1" 200 -
192.168.17.218 - - [31/May/2017 09:00:23] "GET /favicon.ico HTTP/1.1" 404 -
192.168.17.218 - - [31/May/2017 09:00:23] "GET /favicon.ico HTTP/1.1" 404 -
192.168.17.218 - - [31/May/2017 09:00:29] "GET / HTTP/1.1" 200 -
192.168.17.218 - - [31/May/2017 09:00:33] "GET / HTTP/1.1" 200 -

1.2、-p参数(小写),可以指定要映射的端口

1、映射所有接口地址 (hostPort:containerPort)

docker run -d -p 5000:5000 training/webapp python app.py
docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py    //多次使用-p标记可以绑定多个端口

2、映射到指定地址的指定端口 (ip:hostPort:containerPort)

 docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

3、映射到指定地址的任意端口 (ip::containerPort)

docker run -d -p 127.0.0.1::5000 training/webapp python app.py
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py  //指定udp协议

4、查看映射端口配置

[root@CentOS702 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                NAMES
097d8db0ae77        training/webapp     "python app.py"     9 minutes ago       Up 9 minutes        5000/tcp, 127.0.0.1:5000->5000/udp   hungry_jepsen
af92eebaed1c        training/webapp     "python app.py"     9 minutes ago       Up 9 minutes        127.0.0.1:32768->5000/tcp            distracted_heyrovsky
[root@CentOS702 ~]# docker port af92
5000/tcp -> 127.0.0.1:32768
[root@CentOS702 ~]# docker port af92 5000
127.0.0.1:32768
[root@CentOS702 ~]# docker port 097d 5000/udp
127.0.0.1:5000[root@CentOS702 ~]# docker inspect 097d  //查看容器信息,其中网络信息截图如下

二、容器互联实现容器间通信

1、自定义容器命名

容器互联通过容器的名称来操作,因此首先需要为容器指定一个好记的名称,使用--name标记为容器命名。

[root@CentOS702 ~]# docker run -d -P --name web training/webapp python app.py
8f661aada5658a0e3121713190ed7724f02dbc65bf4a185975d6cf302ed7cb31
[root@CentOS702 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
8f661aada565        training/webapp     "python app.py"     6 seconds ago       Up 5 seconds        0.0.0.0:32784->5000/tcp   web
[root@CentOS702 ~]# docker inspect -f "{{ .Name }}" 8f66
/web

2、容器互联

使用--link参数可以让容器之间安全

创建一个新的数据库容器
docker run -d --name db training/postgres
删除之前创建的web容器
docker rm -f web
创建一个新的web容器,并将它连接到db容器
docker run -d -P --name web --link db:db training/webapp python app.py
--link参数的格式为:--link name:alias,其中name是要链接的容器名称,alias是这个连接的别名。

docker通过两种方式为容器公开连接信息:环境变量、更新/etc/hosts文件

[root@CentOS702 ~]# docker exec d91b env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=d91b7c33a198
DB_PORT=tcp://172.17.0.2:5432
DB_PORT_5432_TCP=tcp://172.17.0.2:5432
DB_PORT_5432_TCP_ADDR=172.17.0.2
DB_PORT_5432_TCP_PORT=5432
DB_PORT_5432_TCP_PROTO=tcp
DB_NAME=/web/db
DB_ENV_PG_VERSION=9.3
HOME=/root
[root@CentOS702 ~]# docker exec d91b cat /etc/hosts
127.0.0.1    localhost
::1    localhost ip6-localhost ip6-loopback
fe00::0    ip6-localnet
ff00::0    ip6-mcastprefix
ff02::1    ip6-allnodes
ff02::2    ip6-allrouters
172.17.0.2    db 7e17a1d0cb21
172.17.0.3    d91b7c33a198[root@CentOS702 ~]# docker exec -ti d91b /bin/bashroot@d91b7c33a198:/opt/webapp# ping dbPING db (172.17.0.2) 56(84) bytes of data.64 bytes from db (172.17.0.2): icmp_seq=1 ttl=64 time=0.120 ms64 bytes from db (172.17.0.2): icmp_seq=2 ttl=64 time=0.060 ms64 bytes from db (172.17.0.2): icmp_seq=3 ttl=64 time=0.124 ms64 bytes from db (172.17.0.2): icmp_seq=4 ttl=64 time=0.052 ms

转载于:https://www.cnblogs.com/liuyongsheng/p/6924811.html

docker网络基础配置相关推荐

  1. Docker网络代理配置

    Docker网络代理配置 创建目录 mkdir /etc/systemd/system/docker.service.d 创建http-proxy.conf文件,增加以下内容 cat > /et ...

  2. docker网络的配置

    docker网络的配置 Linux内核实现名称空间的创建 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作.ip netns命令来自于ipro ...

  3. Docker 网络基础原理

    网络基础 网络分层模型 公有IP和私有IP Public IP:互联网上的唯一标识,可以访问internet Private IP:不可在互联网上使用,仅供机构内部使用 A类10.0.0.0--10. ...

  4. 【网络工程师必备】华为设备网络基础配置命令总结,看过的都收藏了

    路由器: dispaly version 显示系统软件版本及硬件信息 system-view 切换到系统视图 quit 返回 interface +接口 进入接口视图 ip address +IP + ...

  5. 超详细丨华为设备网络基础配置命令总结

    路由器: dispaly version 显示系统软件版本及硬件信息 system-view 切换到系统视图 quit 返回 interface +接口 进入接口视图 ip address +IP + ...

  6. 【狂神说】Docker网络基础笔记整理+重点详解

    目录 前言 容器互联(Docker网络) 1.1 Docker的网卡--docker0 1.2 容器互联的方法 1.2.1 使用 --link命令: 1.2.2 自定义docker网络解决 --lin ...

  7. 网络基础配置部署思路

    要给如下网络配置网络除r5环回地址固定5.5.5.0/24外要在192.168.1.0/24网段内,首先要进行合理的地址划分,r1-r4每个路由器有两个环回模拟用户网段. 首先要进行合理的ip地址规划 ...

  8. docker-ce-17.09 网络基础配置

    一.端口映射实现访问容器 1.我们先从pull一个nginx镜像,然后后台运行该镜像 > docker pull nginx > docker run -d -P nginx:latest ...

  9. Linux:网络基础配置

    一.修改主机名 hostname 查看主机名 1.hostname   zy 修改主机名为zy,临时生效,重新登录系统生效. 2.想要永久修改,,需修改配置文件:  vi   /etc/sysconf ...

最新文章

  1. [转帖] 固定硬盘接口 U.2和M.2
  2. Progress Control控件的使用
  3. Maven 项目管理 —— 安装与配置
  4. 应急响应常用的工具说明
  5. moodle 中文文件名无法打开和下载问题
  6. 【老生谈算法】matlab实现图像复原算法源码——图像复原
  7. NB-IOT物联网模块BC26问题合集
  8. 中国工业内窥镜市场全景调研与投资前景预测报告2022-2028年
  9. js的变量命名需要遵循什么规则?
  10. 安卓巴士总结了近百个Android优秀开源项
  11. Linux基础(2)
  12. Mac book笔记本输入法错乱
  13. 两个独立同分布且元素独立同分布的序列相加
  14. Emlog博客主题模板源码简约好看响应式
  15. 利用Python对接MySQL实现员工管理系统
  16. android app出现红叉怎么解决
  17. 4G内存怎么读取5G数据(python中的生成器、Linux的split命令)
  18. Python下载素材脚本
  19. 动态规划(DP)之排座位:从一道排列问题说起
  20. 在red hat中安装yum

热门文章

  1. 有个做微商的兄弟,他是卖品牌运动鞋的,最近很苦恼
  2. 职场上不会“装傻”,才是真的傻!
  3. 我发现每一个生意做得不错的人都很会说话
  4. 男朋友花3000元买一块电脑显卡,他是怎么想的?
  5. 有没有用过苹果手机的人,使用后放弃苹果
  6. hashmap hashtable concurrenthashmap区别
  7. Linux服务器安装JavaWeb环境(二) Redis,MySql,Zookeeper,Keepalive
  8. sql isnull函数_SQL ISNULL函数
  9. merge语句_SQL Server MERGE语句概述和示例
  10. add jar and proxy repo