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

  • 端口映射允许外部访问容器
  • --link 容器互联
  • 容器桥接网络
.通过--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网络链接容器

.新建一个docker网络
docker network create -d bridge my-net
-d 参数指定 Docker 网络类型,有 bridge overlay .连接容器
运行一个容器并连接到新建的 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 ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b47060aca56b busybox "sh" minutes ago Up minutes busybox2
8720575823ec busybox "sh" minutes ago Up minutes busybox1
下面通过 ping 来证明 busybox1 容器和 busybox2 容器建立了互联关系。 在 busybox1 容器输入以下命令 / # ping busybox2
PING busybox2 (172.19.0.3): data bytes
bytes from 172.19.0.3: seq= ttl= time=0.072 ms
bytes from 172.19.0.3: seq= ttl= time=0.118 ms
用 ping 来测试连接 busybox2 容器,它会解析成 172.19.0.3。 同理在 busybox2 容器执行 ping busybox1,也会成功连接到。 / # ping busybox1
PING busybox1 (172.19.0.2): data bytes
bytes from 172.19.0.2: seq= ttl= time=0.064 ms
bytes from 172.19.0.2: seq= ttl= 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 -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfd632821d7a 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.py
c0b5a6278d0f4f2e9b9eba8680451111d8b911b61de0c37ea64cb337aefb854e

访问服务器的9000端口

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

查看指定容器的端口映射

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

查看容器内的进程

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

16.2,docker网络的更多相关文章

  1. 理解Docker(5):Docker 网络

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  2. docker网络配置方法总结

    docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...

  3. 【转】Docker网络详解及pipework源码解读与实践

    好文必转 原文地址: http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-prac ...

  4. Docker网络模式

    [编者的话] 本文是<Docker网络及服务发现>一书的一个章节,介绍了搭建Docker单主机网络的基础内容.关于Docker网络的更多内容,包括多主机的网络,请参考该书的其他章节. @C ...

  5. docker网络访问(三)

    docker网络访问 ifconfig查看网卡,启动docker的时候,docker会帮我们创建一个docker0的网桥. 1.随机映射 docker run -P 2.指定映射 -p hostPor ...

  6. Docker 网络之理解 bridge 驱动

    笔者在前文<Docker 网络之进阶篇>中介绍了 CNM(Container Network Model),并演示了 bridge 驱动下的 CNM 使用方式.为了深入理解 CNM 及最常 ...

  7. Docker网络(五)--技术流ken

    本章内容 1.dokcer默认自带的几种网络介绍 2. 自定义网络 3. 容器间通信 4. 容器与外界交互 docker网络分为单个主机上的容器网络和多个主机上的哇网络,本文主要讲解单个主机上的容器网 ...

  8. docker网络

    docker网络   Docker 允许通过外部访问容器或容器互联的方式来提供网络服务. 端口映射允许外部访问容器 --link 容器互联 容器桥接网络 .通过--link容器通信,给test2添加一 ...

  9. docker 网络 路由

    通过在Docker宿主机上添加静态路由实现跨宿主机通信 模拟环境 主机1(192.168.58.144) 设置docker0 网关 (172.17.0.1/16)                主机2 ...

随机推荐

  1. 使用 Notapad++ 进行 Java 开发

    准备工具 1.安装 JDK 以及配置相关环境变量: 2.安装 64 位版的 Notepad++ : 2.一台 64 位 Windows 系统电脑: 一.下载&安装Notepad++ 官网下载地 ...

  2. 2013应届毕业生各大IT公司待遇整理汇总篇(转)

    不管是应届毕业生还是职场中人,在找工作时都必然会对待遇十分关注,而通常都是面试到最后几轮才知道公司给出的待遇.如果我们事先就了解大概行情,那么就会在面试之前进行比较,筛选出几个心仪的公司,这样才能集中 ...

  3. python3线程介绍02(线程锁的介绍:互斥、信号、条件、时间、定时器)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import threadingimport timeimport random # 1-互斥锁 Lock 同一 ...

  4. vos限制客户呼出时间

    问题: 公司希望自己的卡线晚上 21:00-24:00    早上00:00-7:30不能打出电话,以防遭投拆, 那么如何设置? 方法: 找到客户使用的落地网关, 落地网关——补充设置——

  5. Python中的Numpy、SciPy、MatPlotLib安装与配置

    Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器.网上关于这三个库的安装都写得非常不错,但是大部分人遇到的问题并不是如何安装,而是安装好后因为配置不当,在使 ...

  6. GitLab-Runner 安装配置

    https://docs.gitlab.com/runner/install/linux-repository.html 直接看官方教程 systemctl status gitlab-runner. ...

  7. IOS 单例模式(非ARC)

    singleton_h :连接字符串和参数 // ## : 连接字符串和参数 #define singleton_h(name) + (instancetype)shared##name; #defi ...

  8. win10自带应用图标显示感叹号无法打开如何解决(详细版)

    现象 今天打开电脑图片时发现系统自带的大多应用都无法运行,这些应用图标上都显示着一个感叹号, 应用图标上的颜色被覆上了一层黑色点击后无法运行,自带的应用商店也无法打开,想重装软件都不行这是怎么回事呢? ...

  9. 在Visual Studio 2010里面使用.NET 4.5里面新增加的HttpClient

    Install-Package Microsoft.Net.Http 为了能同步使用(也就是使用await等关键字) Install-Package Microsoft.Bcl.Async 确认在Vi ...

  10. JSONObject数组排序工具类

    依赖jar <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</a ...