Docker(4)-容器互联与端口映射

    容器互联

    默认情况下,容器都是各自独立运行,与世隔绝。

    Docker提供了一个名为docker0的虚拟网桥,它会为每个相连的容器分配一个虚拟子网。但是尽管容器都连在同一个虚拟网桥上,如果没有额外的配置,它们还是不能够相互通信。

    要将容器链接在一起,须按照以下步骤:

  1. 运行你希望被链接的容器,并用--name选项为它命名。
  2. 运行第二个容器,在docker run命令里运用--link选项并指定第一个容器的名字将其链接到第一个容器上。

    例如,我们启动一个mysql的容器并链接到它,我们可以执行:

  1. docker run –d --name db mysql
  2. docker run –it --link db:db --name second-container ubuntu sh

    --link选项的值的格式为:想要链接到的容器的名字:为想要链接到的容器取的内部别名。别名可以任意取,主要用于网络配置的解析。

 

    端口映射

    当我们想通过主机访问在Docker容器上运行的服务时,我们可以使用docker run命令的-p选项来执行端口映射。

    例如,我们要通过访问Docker主机上的8080端口,访问在容器中运行在80端口上的Web服务器,我们可以使用以下命令进行端口映射:

docker run -d -p 8080:80 --name webserver apache

    我们可以通过下列命令查找映射的端口:

  • docker port
  • docker ps 

    我们还可以使用具有EXPOSE指令的Dockerfile和docker run命令的-P选项将容器上的端口公开到外面。 这将在后面的文章中讨论。

 

    如果我们想要docker client连接到远程主机的docker daemon以便在本地执行远端docker命令,可以使用-H选项并跟上IP地址和端口。

    Note:docker daemon默认端口为2375

docker -H 192.168.56.50:2375 –d &

    或者我们可以设置DOCKER_HOST变量:

export DOCKER_HOST="tcp://192.168.56.50:2375"

    将docker client重新连回本地:

export DOCKER_HOST=

 

posted @ 2017-08-30 23:25  Zach7  阅读(10256)  评论(0编辑  收藏  举报