美文网首页
docker学习(五)docker容器的互联

docker学习(五)docker容器的互联

作者: 吃猫的鱼0 | 来源:发表于2018-02-02 11:18 被阅读0次

docker容器的互联

准备的docker容器环境

FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y curl
EXPOSE 80
CMD /bin/bash

docker容器互联的默认方式

--icc=true 默认(允许连接)

当停止一个容器后容器的ip地址会改变

容器重启后可以继续访问

解决因为重启IP改变连接不变的问题

使用link选项

包含了容器名以及我们希望为这个容器指定的代号,

$docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMOND]

如果指定了link选项,我们就可以在新启动的容器中,以我们所指定的代号来访问相应的容器。避免因为ip地址的变化而带来的影响

例子:
$docker run -it --name 容器名 --link=要连接的容器:给要连接容器起的别名 镜像名称
这时在新的容器中就可以通过别名进行访问

ping 要连接容器的别名

link造成的影响

1.在容器启动时docker添加了一些环境变量 evn可以查看
2.docker添加了新容器的地址映射 vim /etc/hosts

重启容器后发现,还可以使用别名连接。但是hosts文件里面的ip映射发生了改变。(当重启后,docker会自动更改环境变量、ip地址和指定的别名之间的映射)

拒绝容器之间的连接

--icc=false

1.修改docker启动配置文件

$sudo vim /etc/default/docker

2.在末尾添加配置

DOCKER_OPTS=" --icc=false"

3.重启docker的服务

$sudo service docker restart

4.查看配置是否使用

$ps -ef | grep docker

允许特定的容器间的连接

需要三个配置

1.--icc=false
2.--iptables=true(linux中用来控制网络访问的)
3.运行容器时使用 --link(以前采用link选项的在允许特定访问配置后还可以正常访问)
原理:docker运用iptables中的机制,在icc等于false时。阻断docker中容器之间的访问,仅仅允许利用link选项配置的容器进行相互的访问

操作流程:

1.修改docker启动配置文件

$sudo vim /etc/default/docker

2.添加--iptables的设置

DOCKER_OPTS=" --icc=false --iptables=true"

3.重启docker的服务

$sudo service docker restart

4.查看配置是否使用

$ps -ef | grep docker

5.利用link选项运行一个新容器

$docker run -it --name cct4 --link=cct1:webtest jingxiang

配置后不能访问解决:

1.查看宿主机的iptaables

$sudo iptables -L -n
(第一项FOREARD,docker不是第一个)

2.清空iptaables设置

$sudo iptables -F

3.查看宿主机的iptaables

$sudo iptables -L -n
(刚才的设置已经没有)

4.重启docker的服务

$sudo service docker restart

5.查看宿主机的iptaables

$sudo iptables -L -n
(docker 已经归在第一位)

6.启动docker容器
7.curl 容器别名就可以正常访问

相关文章

  • docker学习(五)docker容器的互联

    docker容器的互联 准备的docker容器环境 docker容器互联的默认方式 当停止一个容器后容器的ip地址...

  • docker 容器互联

    docker 容器互联 docker 容器互联总结的是在同一台宿主机上,多个 docker 容器文件共享和网络互联...

  • Docker学习(7) Docker容器

    Docker学习(7) Docker容器 Docker容器——简介 容器是镜像的运行时实例 启动容器使用docke...

  • 记录一次Docker的学习

    Docker学习 Docker概述 Docker安装 Docker命令镜像命令容器命令操作命令... Docker...

  • 2019-07-05

    Docker 学习笔记 - 端口映射与容器互联 作者:马燕龙 时间:2017-11-06 分类:Docker 一、...

  • 常用docker命令

    docker进入容器: docker查看容器ip docker重启容器 docker 启动容器 docker复制宿...

  • docker笔记

    一、docker: 二、docker能够做什么? 三、镜像和容器: 四、docker安装: 五、docker仓库:...

  • Docker 网络

    Docker允许通过外部访问容器或容器互联的方式来提供网络服务。 安装Docker时,会自动安装一块Docker网...

  • Docker

    # Docker java进阶/docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器...

  • Docker

    Docker学习目标 Docker概述 Docker安装 Docker命令镜像命令容器命令操作命令... Dock...

网友评论

      本文标题:docker学习(五)docker容器的互联

      本文链接:https://www.haomeiwen.com/subject/ffiszxtx.html