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/)本人同意即可转载,谢谢!
DOCKER学习_015:Docker网络补充的更多相关文章
- Docker学习之Docker容器基本使用
Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...
- Docker学习之Docker镜像基本使用
Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
- DOCKER学习_014:Docker存储补充
在前面已经学习了Docker的存储,https://www.cnblogs.com/zyxnhr/p/11830238.html,现在对前面的内容的一个补充,具体请参考https://www.cnbl ...
- docker学习3-虚拟网络模式
一.虚拟机网络模式 在理解docker网络隔离前,先看下之前虚拟机里对网络的处理,VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-onl ...
- <Docker学习>6. docker使用网络
在容器中部署一个web应用,外部如何访问? 容器与容器间如何访问? 外部访问容器 容器可以运行一些网络应用,让外部也可以访问的话,需要进行服务器和容器的端口映射 -p 或者 -P -P默认会分配一个4 ...
- Docker学习(13) Docker容器的网络连接
Docker容器的网络连接 Docker容器的网络基础 先安装网桥管理工具 Docker容器的互联 默认 Docker容器与外部网络的连接
- Docker学习笔记 - Docker的守护进程
学习目标: 查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态 方 ...
- Docker学习之Docker Registry
前言 前面已经学习了怎样通过Dockerfile来构建我们自己的镜像了,但是一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了 ...
随机推荐
- Object.assign()和解构赋值:给对象赋值的两种方法
一.Object.assign()方法给对象赋值 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象.它将返回目标对象. 拷贝的是属性值 如果目标对象中的属性 ...
- python程序—一键部署keepalived+lvs
一个DS 两个RS keepalived端在/root下准备好已经修改好的配置文件 import paramiko # keepalived端 需要修改的信息 keepalived_ip='192.1 ...
- 如何识别自己基因组数据是哪个全基因组参考版本(Genome Reference Versions/ Genome Build)
首先在这里先感谢我们[Bio生信学习交流群]的群友和创建此群的群主[陈博士后]. 今天解决的问题是怎么查看自己的基因组数据是哪个Genome Reference Versions. 步骤: 第一步,打 ...
- 使用numba加速python科学计算
技术背景 python作为一门编程语言,有非常大的生态优势,但是其执行效率一直被人诟病.纯粹的python代码跑起来速度会非常的缓慢,因此很多对性能要求比较高的python库,需要用C++或者Fort ...
- Laravel打印sql日志
直接打印 use Log; use DB; DB::connection()->enableQueryLog(); Log::info(DB::getQueryLog()); //print_r ...
- hdu4279 找规律+小想法
题意: 蛋疼的题意,最后是泽神给我讲的题意,题意是对于一个数来说,如果他不能整除另一个数同时他和另一个数非互质,那么另一个数就是这个数的特别数,如10 的特别数有 4 6 8三个,同时题目还 ...
- Python爬虫之使用正则表达式抓取数据
目录 匹配标签 匹配title标签 a标签 table标签 匹配标签里面的属性 匹配a标签里面的URL 匹配img标签里的 src 相关文章:Linux中的正则表达式 Python中的正则表达式 实例 ...
- 一种Maven项目启动时不编译java文件的解决方案
问题 前提介绍 : 环境版本 : JDK -version : 1.8.0-251 Tomcat -version : 8.5.5 Maven -version : 3.6.3 项目情况描述 使用ID ...
- java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
问题描述 Tomcat启动报错 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 问题原因 因为tomcat在启动过程中jsp和se ...
- yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)
这是因为版本问题,centos8没有该参数,解决办法为:去掉fast参数,就可以了 sudo yum makecache