Docker学习④

端口映射与容器互联

Docker除了通过网络访问外,还提供了两个很方便的功能来满足服务访问的基本需求:

  1. 允许映射容器内应用的服务端口到本地宿主主机;
  2. 互联机制实现多个容器间通过容器名来快速访问;

端口映射实现容器访问

1、从外部访问容器应用

当容器中运行一些网络应用,要让外部访问这些应用时,可以用过-P或-p参数来指定端口映射。当使用-P标记时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口:

此时可以看到,本地主机的5000被映射到了容器的5000端口。访问宿主主机的5000端口即可访问容器内应用提供的界面。

具体的应用实例可参考:

2、映射所有接口地址

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

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

5、查看映射端口配置

互联机制实现便捷互访

容器的互联是一种让多个容器中的应用进行快速交互的方式。它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。

1、自定义容器命名

连接系统依据容器的名称来执行。自定义命名容器有两个好处:

  1. 自定义的命名,比较好记,比如一个Web应用容器我们可以给它起名web,一目了然;
  2. 当要连接其他容器时候(即便重启),也可以使用容器名而不用改变,比如连接web容器到db容器;

例:使用--name标记可以为容器自定义命名

【注】

  1. 在执行docker [container] run的时候如果添加--rm标志,则容器在终止后会立刻删除;
  2. 同时,--rm-d参数不能同时使用;

2、容器互联

使用--link参数可以让容器之间安全地进行交互。

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

删除之前创建的web容器

然后创建一个新的web容器,并将它连接到db容器

【注】

--link参数的格式为:
--link name:alias

name:链接的容器的名称
alias:别名

Docker相当于在两个互联的容器之间创建了一个虚机通道,而且不用映射它们的端口到宿主主机上。在启动db容器的时候并没有使用-p和-P标记,从而避免了暴露数据库服务端口到外部网络上。

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

  1. 更新环境变量;
  2. 更新/etc/hosts文件;
发布了90 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_37160123/article/details/103280901