Docker基础教程——网络基础配置

标签: Docker Docker教程 Docker网络配置
1037人阅读 评论(0) 收藏 举报
分类:

原文出自:http://blog.csdn.net/anxpp/article/details/52495295

    我们使用Docker发布的组件,通常都离不开网络的,下面介绍Docker的网络基础配置。

1、端口映射

    从外部访问容器应用

    启动容器时,如果不知道对应参数,在容器外部是无法通过网络访问容器内部的。

    可以通过-p或-P参数指定端口映射。

    使用-P时,Docker会随机映射一个49000~49900的端口到容器内部开放的端口。

    -p会映射到指定的端口,支持的格式:

  • ip地址:主机端口:容器端口
  • ip地址::容器端口
  • 主机端口:容器端口

    映射所有接口地址

    主机端口:容器端口 格式将本地端口映射到容器端口的命令如下:

docker run -d -p 3306:3306 mysql
    此时默认会帮顶本地所有接口上的地址,可以多次使用-p帮顶多个端口。

    映射到指定地址的指定端口

    ip地址:主机端口:容器端口 格式的参数几乎与上面的差不多,不过多限制了地址,比如需要指定特定的地址的访问(如127.0.0.1):

docker run -d -p 127.0.0.1:3306:3306 mysql

    映射到指定地址的任意端口

    ip地址::容器端口 格式的参数,可以绑定localhost的任意端口到容器的指定端口上,本地主机会自动分配一个端口:

doccker run -d -p 127.0.0.1::3306 mysql
    也可以使用udp来标记udp端口:

doccker run -d -p 127.0.0.1:3386:3386/udp 某个镜像

    查看端口映射配置

    使用docker port命令查看端口映射配置:

 docker port 容器ID 3306
    容器有自己的内部往来和IP地址:

docker inspect 容器ID
    然后会输出一大堆信息。

2、容器互联

    容器的连接系统是除了端口映射外另一种可以与容器中应用进行交互的方式。

    它会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。

    自定义容器名

    连接系统根据容器的名称执行,所以需要自定义一个较为简单容易区分的容器名。

    自定义命名使用--name参数,这个在之前的文章中已经遇到过了:

docker run -d -p --name db mysql
    容器的命名必须是唯一的。

    执行docker run时,如果加上--rm参数,容器在终止后悔立即被删除,但是不能与-d参数一同使用。

    容器互联

    使用--link参数可以让容器间建立安全的连接进行交互。

    下面是一个示例:

  • 首先创建一个数据库的容器:

docker run -d --name db training/postgres

  • 然后创建web容器:

docker run -d -P --name web --link db:db training/webapp python app.py
    此时db容器和web容器加你互联关系。

    --link参数:--link name:alias,name是要连接的容器的名字,alias是这个连接的别名。

    可以使用docker ps查看容器信息,其中names列就能看出互联的状态。


    docker在两个互联的容器之间建立了一个安全隧道,不需要吧他们的端口映射到宿主主机上,也可以避免端口的暴露。

    Docker通过两种方式公开连接信息:

  • 环境变量
  • 更新/etc/hosts文件

    使用env命令查看刚刚的web容器的环境变量:

docker run --rm --name web2 --link db:db training/webapp env
    ...

    其中DB_开头的环境变量是供web容器连接db容器使用,前缀采用大写的连接别名。

    除了环境变量,Docker还添加host信息到父容器的/etc/hosts文件。其中web容器会以自己的ID作为默认主机名,db容器以db作为主机名。

    比如多个web到db容器的情况,可以链接多个子容器到父容器上。


小结

    Docker通过端口映射和容器互联,优雅的提供了网络配置功能。

查看评论

docker:网络基础配置

1.1 端口映射实现访问容器 从外部访问容器应用        -P或-p参数来指定端口映射 映射到指定地址的指定端口 docker run -d -p 127.0.0.1:5000:5000 t...
  • u010951938
  • u010951938
  • 2016-01-17 21:18:06
  • 382

docker 四种网络模型

一.docker网络基础知识Docker在创建容器时有四种网络模式,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用–net去指定。bridge模式,使用–net=bridg...
  • csdn066
  • csdn066
  • 2017-08-14 19:01:12
  • 1206

Docker基础教程——网络基础配置

我们使用Docker发布的组件,通常都离不开网络的,下面介绍Docker的网络基础配置。 1、端口映射 从外部访问容器应用 启动容器时,如果不知道对应参数,在容器外部是无法通过网络...
  • anxpp
  • anxpp
  • 2016-09-10 17:14:32
  • 1037

Docker-网络基础配置

本文部分摘自书籍《Docker技术入门与实战》 互联网应用服务包括多个服务组件,往往需要多个容器之间通过网络通信进行配合,docker提供了映射容器端口到宿主机和容器互联网机制来为容器提供网络服务。...
  • B_boy_hong10
  • B_boy_hong10
  • 2018-02-26 16:03:04
  • 47

计算机网络基础教程.pdf

  • 2017年06月19日 12:14
  • 3.5MB
  • 下载

Docker基础教程——Dockerfile

Dockerfile是一个文本格式的配置文件,我们可以使用Dockerfile文件快速创建自定义的镜像。 Dockerfile支持的众多指令是本文主要要介绍的内容,之后会给出一个基本示例。 ...
  • anxpp
  • anxpp
  • 2016-09-11 13:23:03
  • 1607

Docker 基础介绍及配置安装 [一]

Docker 基础介绍及配置安装 [一]标签(空格分隔): Docker 时间:2016年11月2日博客:www.abcdocker.com 微信公众号:abcdocker 笔者QQ:381...
  • abcdocker
  • abcdocker
  • 2016-11-14 13:50:36
  • 3818

Docker基础教程——网络基础配置

我们使用Docker发布的组件,通常都离不开网络的,下面介绍Docker的网络基础配置。 1、端口映射 从外部访问容器应用 启动容器时,如果不知道对应参数,在容器外部是无法通过网络...
  • anxpp
  • anxpp
  • 2016-09-10 17:14:32
  • 1037

Docker基本使用教程

Docker能做什么The key benefit of Docker is that it allows users to package an application with all of i...
  • qazplm12_3
  • qazplm12_3
  • 2017-06-18 19:09:40
  • 719

计算机网络基础教程(ppt)

  • 2009年06月02日 14:28
  • 1.7MB
  • 下载
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 88万+
    积分: 5836
    排名: 5503
    博客专栏
    music