Docker除了通过网络访问外,还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问。本章将分别讲解这两个很实用的功能。
1. 端口映射实现容器访问
1.1 从外部访问容器应用
在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射。当使用-P(大写的)标记时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口:
1.2 映射所有接口地址
image.png
1.3 映射到指定地址的指定端口
image.png
1.4 映射到指定地址的任意端口
image.png
1.5 查看映射端口配置
image.png
2. 互联机制实现便捷互访
容器的互联(linking)是一种让多个容器中的应用进行快速交互的方式。它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。
2.1 自定义容器命名
连接系统依据容器的名称来执行。因此,首先需要自定义一个好记的容器命名。虽然当创建容器的时候,系统默认会分配一个名字,但自定义命名容器有两个好处:
- 自定义的命名,比较好记,比如一个Web应用容器我们可以给它起名叫web,一目了然;
- 当要连接其他容器时候(即便重启),也可以使用容器名而不用改变,比如连接web容器到db容器。
在执行docker [container] run的时候如果添加--rm标记,则容器在终止后会立刻删除。注意,--rm和-d参数不能同时使用。
2.2 容器互联









网友评论