Docker 网络配置
Posted jacksonxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 网络配置相关的知识,希望对你有一定的参考价值。
Docker 1.9 中正式引入了所谓的 "Container Network Model",也就适合所谓的 CNM 的概念。CNM 即用于创建小型微分割的网络来使得不同组的容器之间进行相互连接。
Basic Usage | 基本使用
端口映射
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P
或 -p
参数来指定端口映射。
当使用 -P 标记时,Docker 会随机映射一个 49000~49900
的端口到内部容器开放的网络端口。
使用 docker ps
可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。
同样的,可以通过 docker logs
命令来查看应用的信息。
tomcat部署
(1)拉取镜像
docker pull tomcat:7-jre7
(2)创建容器
创建容器 -p表示地址映射
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
查看映射端口配置
使用 docker port
来查看当前映射的端口配置,也可以查看到绑定的地址
注意:
- 容器有自己的内部网络和 ip 地址(使用
docker inspect
可以获取所有的变量,Docker 还可以有一个可变的网络配置。) - -p 标记可以多次使用来绑定多个端口
- docker run -di --name=mytomcat -p 9000:8080 -p 9001:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
注意,网络映射的操作只会在 run 命令中起作用,如果已经运行了一个容器,需要重新设置其网络映射情况,请使用 commit 将容器转化为镜像之后再创建新的容器。
容器互联 (Links)
容器的连接(linking )系统是除了端口映射外,另一种跟容器中应用交互的方式。
该系统会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。
自定义容器命名
连接系统依据容器的名称来执行。因此,首先需要自定义一个好记的容器命名。
虽然当创建容器的时候,系统默认会分配一个名字。自定义命名容器有 2 个好处:
Networking( 网络 )
在 Docker 1.9 之后,Docker 正式宣布可以将 Networking 应用于生产环境中,并且可以与 Swarm 以及 Compose 进行较好的结合。与传统的List相比,Networking 具有以下优势:
- 允许不同物理主机或者虚拟主机上的容器进行通信
Networking( 网络 )
在 Docker 1.9 之后,Docker 正式宣布可以将 Networking 应用于生产环境中,并且可以与 Swarm 以及 Compose 进行较好的结合。与传统的List相比,Networking 具有以下优势:
- 允许不同物理主机或者虚拟主机上的容器进行通信
- 使用了 Networking 的容器可以很方便地进行停止、启动或者重启等操作而不用担心会影响到与其他容器之间的连接
- 并不需要在连接到某个容器之前就直接创建它,换言之,Networking 不再像原本的List一样会依赖某个容器而存在
Single Host Networking
可以直接使用docker network
命令来使用 Networking,其中可以使用docker network create
来创建一个新的网络,在这个示例中,我们会创建一个叫做frontend
的网络并且在其中运行一个 nginx 容器:
以上是关于Docker 网络配置的主要内容,如果未能解决你的问题,请参考以下文章