1 Docker容器使用LINK方式互通

在前面的网络实验中,当同一主机的两个Docker容器,使用Bridge网桥互通时,我们必须使用docker inspect Dockerid查找出Dockers容器的IP,然后才能通信,现在可以使用LINK这种方式,让两个容器进行通信

首先创建一个容器

[root@docker-server3 ~]# docker run -d openssh:v1.7

a8ada684e599da9266e91e5fb9ca771403e345be16c27ac1de238471e21fc8d4

[root@docker-server3 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
a8ada684e599 openssh:v1.7 "/bin/sh -c '/usr/sb…" 3 seconds ago Up 2 seconds 22/tcp, 80/tcp confident_hypatia

只用LINK方式在创建一个容器

[root@docker-server3 ~]# docker run -d --link  confident_hypatia:openssh  nginx:v1.5

confident_hypatia:openssh这个意思时容器名:别名,方便识别

e4940929960c33d5fb093eef55253219c45895f0b77795e7cf22ba3f9b2edcba

[root@docker-server3 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
e4940929960c nginx:v1.5 "/build.sh nginx -g …" 12 seconds ago Up 11 seconds 80/tcp zealous_villani
a8ada684e599 openssh:v1.7 "/bin/sh -c '/usr/sb…" 3 minutes ago Up 3 minutes 22/tcp, 80/tcp confident_hypatia

[root@docker-server3 ~]# docker exec -it e4940929960c  /bin/bash

[root@e4940929960c html]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.0.2 openssh a8ada684e599 confident_hypatia
192.168.0.3 e4940929960c

可以看到,使用LINK的方式,就是把容器名,容器ID,别名写进hosts,这样就可以直接使用主机名或者dokerid进行通信

[root@e4940929960c html]# ping openssh

[root@e4940929960c html]# ping confident_hypatia

[root@e4940929960c html]# ping a8ada684e599

PING openssh (192.168.0.2) 56(84) bytes of data.
64 bytes from openssh (192.168.0.2): icmp_seq=1 ttl=64 time=0.135 ms
64 bytes from openssh (192.168.0.2): icmp_seq=2 ttl=64 time=0.124 ms

但是LINK不能跨主机

2 Dockers创建容器时,可以指定IP,但是必须要使用自定义的网络,才能指定IP

例如:

[root@docker-server3 ~]# docker run -d  --net bridge --ip 192.168.0.20 nginx:v1.5

10694bcf9b8709a5161d71f0baef42ad5f555234b3eced853a2eae0167f4d633
docker: Error response from daemon: user specified IP address is supported on user defined networks only.

[root@docker-server3 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
10694bcf9b87 nginx:v1.5 "/build.sh nginx -g …" 8 seconds ago Created practical_ritchie

创建一个自定义网络

[root@docker-server3 ~]# docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net3  

[root@docker-server3 ~]# docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
3b13bd244134 bridge bridge local
e3d5265467e4 host host local
8f5945aac199 my_net3 bridge local
eb34937c52b0 none null local

[root@docker-server3 ~]# docker run -d -it --net my_net3 --ip 172.22.16.10 nginx:v1.5

[root@docker-server3 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
f97a5669c5d6 nginx:v1.5 "/build.sh nginx -g …" 6 seconds ago Up 5 seconds 80/tcp beautiful_wilbur
10694bcf9b87 nginx:v1.5 "/build.sh nginx -g …" 2 minutes ago Created practical_ritchie

[root@docker-server3 ~]# docker inspect f97a5669c5d6|grep IP

"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"IPAMConfig": {
"IPv4Address": "172.22.16.10"
"IPAddress": "172.22.16.10",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,

博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(https://www.cnblogs.com/breezey/)本人同意即可转载,谢谢!

DOCKER学习_015:Docker网络补充的更多相关文章

  1. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  2. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. DOCKER学习_014:Docker存储补充

    在前面已经学习了Docker的存储,https://www.cnblogs.com/zyxnhr/p/11830238.html,现在对前面的内容的一个补充,具体请参考https://www.cnbl ...

  5. docker学习3-虚拟网络模式

    一.虚拟机网络模式 在理解docker网络隔离前,先看下之前虚拟机里对网络的处理,VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-onl ...

  6. <Docker学习>6. docker使用网络

    在容器中部署一个web应用,外部如何访问? 容器与容器间如何访问? 外部访问容器 容器可以运行一些网络应用,让外部也可以访问的话,需要进行服务器和容器的端口映射 -p 或者 -P -P默认会分配一个4 ...

  7. Docker学习(13) Docker容器的网络连接

    Docker容器的网络连接 Docker容器的网络基础 先安装网桥管理工具 Docker容器的互联 默认 Docker容器与外部网络的连接

  8. Docker学习笔记 - Docker的守护进程

    学习目标:  查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态  方 ...

  9. Docker学习之Docker Registry

    前言 前面已经学习了怎样通过Dockerfile来构建我们自己的镜像了,但是一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了 ...

随机推荐

  1. 下载kaggle数据集的小妙招

    kaggle是很多数据分析和机器学习初学者非常喜爱的数据科学竞赛平台. 这个平台上有很多接近现实业务场景的数据集,非常适合练手. 今天向大家推荐一个下载kaggle数据集的小工具--kaggleAPI ...

  2. 破解class文件的第一步:深入理解JAVA Class文件

    摘要: java定义了一套与操作系统,硬件无关的字节码格式,这个字节码就是用java class文件来表示的,java class文件内部定义了虚拟机可以识别的字节码格式,这个格式是平台无关性的. j ...

  3. JAVAEE_Servlet_11_GetAndPost

    Get请求和Post请求 * Get请求 和 Post请求各方面分析 - 什么情况下浏览器发送的是Get请求? 1. 通过浏览器的地址栏输入地址,所访问的URL都是get请求,如果以post定义,那么 ...

  4. aws EKS

    登陆aws账号 1)找到eks 相关的项目,并进入 2)填写集群的名称,然后下一步 3)集群设置页面,添加集群服务角色 (aws eks cluster role) 4)继续集群配置 5)集群创建完成 ...

  5. TypeScript 入门自学笔记 — 类型断言(二)

    码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14558034.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...

  6. 0-0 Linux安装在VMvare虚拟机上

    一.安装VMware虚拟机: 双击, 上面一步会提示你输入密钥,你只要双击这个,复制里面的一串码粘贴进去就可以. 点击完成,至此VM虚拟机安装完成. 二.在VMvare虚拟机上安装centos. 1. ...

  7. 【小白向】基于Docker使用Gogs,Drone以及drone-runner-docker的自动化部署

    Gogs是基于Go语言编写的可以替代gitlab的代码托管平台,它没有gitlab那么庞大且不需要占用大量资源,对小型服务器相对于比较友好,我们甚至可以使用树莓派搭建. 服务器配置: * 操作系统:C ...

  8. JWT(Json Web Token)认证

    目录 JWT(Json Web Token) JWT的数据结构 JWT的用法 JWT验证流程

  9. [CTF]ROT5/13/18/47编码

    [CTF]ROT5/13/18/47编码 ---------------------  作者:adversity`  来源:CSDN  原文:https://blog.csdn.net/qq_4083 ...

  10. XCTF-unfinish

    unfinish 之前做过这个题,这是之前写的WP:链接