DOCKER学习_015:Docker网络补充
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/)本人同意即可转载,谢谢!
最新文章
- [Git] Git基础
- mysql登陆问题
- Mongodb Manual阅读笔记:CH3 数据模型(Data Models)
- iOS9 UI Tests探索笔记
- Autolayout及VFL经验分享
- mysql 实现行号的方法——如何获取当前记录所在行号
- Android 上千张图片的列表滑动加载
- 实现带查询功能的Combox控件
- 安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined
- (转载)js----对象直接量
- ASP.NET MVC轻教程 Step By Step 3 ——使用ViewBag
- Qt之HTTP上传/下载(继承QNetworkAccessManager,包括使用了authenticationRequired认证信号)
- IIS给网站地址配置成HTTPS的
- english: 遭遇
- 消息队列NetMQ 原理分析5-StreamEngine、Encord和Decord
- spring集成shiro登陆流程(上)
- 亿级流量场景下,大型架构设计实现【全文检索高级搜索---ElasticSearch篇】-- 中
- pymsql模块
- automaticallyAdjustsScrollViewInsets 详解
热门文章
- 并发编程(ReentrantLock&&同步模式之顺序控制)
- 了解什么是redis的雪崩和穿透?redis崩溃之后会怎么样?系统该如何应对这种情况?如何处理redis的穿透?
- Kubernetes删除一直处于Terminating状态的namespace
- 计算机系统原理:cache容量计算
- IDAPython类库---idaapi.py的源码
- Python中sys模块的使用
- vscode 将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹
- C#如何加载嵌入到资源的非托管dll
- java学习路线分析
- c++学习的一些忠告(转载)