docker网络基础配置
一、端口映射实现访问容器
1.1、-P参数(大写),会随机映射一个端口至容器内部开放的端口
[root@CentOS702 ~]# docker run -d -P training/webapp python app.py 7a8bd82f251d7e59e0c413c577c4986e02f2d62284e8b01fe215f8c49fd6bd61 [root@CentOS702 ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7a8bd82f251d training/webapp "python app.py" 6 seconds ago Up 5 seconds 0.0.0.0:32781->5000/tcp quizzical_brattain [root@CentOS702 ~]# docker logs -f 7a8b* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 192.168.17.218 - - [31/May/2017 09:00:23] "GET / HTTP/1.1" 200 - 192.168.17.218 - - [31/May/2017 09:00:23] "GET /favicon.ico HTTP/1.1" 404 - 192.168.17.218 - - [31/May/2017 09:00:23] "GET /favicon.ico HTTP/1.1" 404 - 192.168.17.218 - - [31/May/2017 09:00:29] "GET / HTTP/1.1" 200 - 192.168.17.218 - - [31/May/2017 09:00:33] "GET / HTTP/1.1" 200 -
1.2、-p参数(小写),可以指定要映射的端口
1、映射所有接口地址 (hostPort:containerPort)
docker run -d -p 5000:5000 training/webapp python app.py docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py //多次使用-p标记可以绑定多个端口
2、映射到指定地址的指定端口 (ip:hostPort:containerPort)
docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
3、映射到指定地址的任意端口 (ip::containerPort)
docker run -d -p 127.0.0.1::5000 training/webapp python app.py docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py //指定udp协议
4、查看映射端口配置
[root@CentOS702 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 097d8db0ae77 training/webapp "python app.py" 9 minutes ago Up 9 minutes 5000/tcp, 127.0.0.1:5000->5000/udp hungry_jepsen af92eebaed1c training/webapp "python app.py" 9 minutes ago Up 9 minutes 127.0.0.1:32768->5000/tcp distracted_heyrovsky [root@CentOS702 ~]# docker port af92 5000/tcp -> 127.0.0.1:32768 [root@CentOS702 ~]# docker port af92 5000 127.0.0.1:32768 [root@CentOS702 ~]# docker port 097d 5000/udp 127.0.0.1:5000[root@CentOS702 ~]# docker inspect 097d //查看容器信息,其中网络信息截图如下
二、容器互联实现容器间通信
1、自定义容器命名
容器互联通过容器的名称来操作,因此首先需要为容器指定一个好记的名称,使用--name标记为容器命名。
[root@CentOS702 ~]# docker run -d -P --name web training/webapp python app.py 8f661aada5658a0e3121713190ed7724f02dbc65bf4a185975d6cf302ed7cb31 [root@CentOS702 ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8f661aada565 training/webapp "python app.py" 6 seconds ago Up 5 seconds 0.0.0.0:32784->5000/tcp web [root@CentOS702 ~]# docker inspect -f "{{ .Name }}" 8f66 /web
2、容器互联
使用--link参数可以让容器之间安全
创建一个新的数据库容器 docker run -d --name db training/postgres 删除之前创建的web容器 docker rm -f web 创建一个新的web容器,并将它连接到db容器 docker run -d -P --name web --link db:db training/webapp python app.py --link参数的格式为:--link name:alias,其中name是要链接的容器名称,alias是这个连接的别名。
docker通过两种方式为容器公开连接信息:环境变量、更新/etc/hosts文件
[root@CentOS702 ~]# docker exec d91b env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=d91b7c33a198 DB_PORT=tcp://172.17.0.2:5432 DB_PORT_5432_TCP=tcp://172.17.0.2:5432 DB_PORT_5432_TCP_ADDR=172.17.0.2 DB_PORT_5432_TCP_PORT=5432 DB_PORT_5432_TCP_PROTO=tcp DB_NAME=/web/db DB_ENV_PG_VERSION=9.3 HOME=/root [root@CentOS702 ~]# docker exec d91b 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 172.17.0.2 db 7e17a1d0cb21 172.17.0.3 d91b7c33a198[root@CentOS702 ~]# docker exec -ti d91b /bin/bashroot@d91b7c33a198:/opt/webapp# ping dbPING db (172.17.0.2) 56(84) bytes of data.64 bytes from db (172.17.0.2): icmp_seq=1 ttl=64 time=0.120 ms64 bytes from db (172.17.0.2): icmp_seq=2 ttl=64 time=0.060 ms64 bytes from db (172.17.0.2): icmp_seq=3 ttl=64 time=0.124 ms64 bytes from db (172.17.0.2): icmp_seq=4 ttl=64 time=0.052 ms
转载于:https://www.cnblogs.com/liuyongsheng/p/6924811.html
docker网络基础配置相关推荐
- Docker网络代理配置
Docker网络代理配置 创建目录 mkdir /etc/systemd/system/docker.service.d 创建http-proxy.conf文件,增加以下内容 cat > /et ...
- docker网络的配置
docker网络的配置 Linux内核实现名称空间的创建 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作.ip netns命令来自于ipro ...
- Docker 网络基础原理
网络基础 网络分层模型 公有IP和私有IP Public IP:互联网上的唯一标识,可以访问internet Private IP:不可在互联网上使用,仅供机构内部使用 A类10.0.0.0--10. ...
- 【网络工程师必备】华为设备网络基础配置命令总结,看过的都收藏了
路由器: dispaly version 显示系统软件版本及硬件信息 system-view 切换到系统视图 quit 返回 interface +接口 进入接口视图 ip address +IP + ...
- 超详细丨华为设备网络基础配置命令总结
路由器: dispaly version 显示系统软件版本及硬件信息 system-view 切换到系统视图 quit 返回 interface +接口 进入接口视图 ip address +IP + ...
- 【狂神说】Docker网络基础笔记整理+重点详解
目录 前言 容器互联(Docker网络) 1.1 Docker的网卡--docker0 1.2 容器互联的方法 1.2.1 使用 --link命令: 1.2.2 自定义docker网络解决 --lin ...
- 网络基础配置部署思路
要给如下网络配置网络除r5环回地址固定5.5.5.0/24外要在192.168.1.0/24网段内,首先要进行合理的地址划分,r1-r4每个路由器有两个环回模拟用户网段. 首先要进行合理的ip地址规划 ...
- docker-ce-17.09 网络基础配置
一.端口映射实现访问容器 1.我们先从pull一个nginx镜像,然后后台运行该镜像 > docker pull nginx > docker run -d -P nginx:latest ...
- Linux:网络基础配置
一.修改主机名 hostname 查看主机名 1.hostname zy 修改主机名为zy,临时生效,重新登录系统生效. 2.想要永久修改,,需修改配置文件: vi /etc/sysconf ...
最新文章
- [转帖] 固定硬盘接口 U.2和M.2
- Progress Control控件的使用
- Maven 项目管理 —— 安装与配置
- 应急响应常用的工具说明
- moodle 中文文件名无法打开和下载问题
- 【老生谈算法】matlab实现图像复原算法源码——图像复原
- NB-IOT物联网模块BC26问题合集
- 中国工业内窥镜市场全景调研与投资前景预测报告2022-2028年
- js的变量命名需要遵循什么规则?
- 安卓巴士总结了近百个Android优秀开源项
- Linux基础(2)
- Mac book笔记本输入法错乱
- 两个独立同分布且元素独立同分布的序列相加
- Emlog博客主题模板源码简约好看响应式
- 利用Python对接MySQL实现员工管理系统
- android app出现红叉怎么解决
- 4G内存怎么读取5G数据(python中的生成器、Linux的split命令)
- Python下载素材脚本
- 动态规划(DP)之排座位:从一道排列问题说起
- 在red hat中安装yum
热门文章
- 有个做微商的兄弟,他是卖品牌运动鞋的,最近很苦恼
- 职场上不会“装傻”,才是真的傻!
- 我发现每一个生意做得不错的人都很会说话
- 男朋友花3000元买一块电脑显卡,他是怎么想的?
- 有没有用过苹果手机的人,使用后放弃苹果
- hashmap hashtable concurrenthashmap区别
- Linux服务器安装JavaWeb环境(二) Redis,MySql,Zookeeper,Keepalive
- sql isnull函数_SQL ISNULL函数
- merge语句_SQL Server MERGE语句概述和示例
- add jar and proxy repo