从外部访问容器

指定容器端口随机映射主机端口

[root@wls12c /]$ docker run -p  -d --name web tomcat /bin/bash -c /root/apache-tomcat-7.0./bin/startup.sh
56aff84e42df074c4941a8a373305ffbba121bd4b190f58ec5c6136d062b557f [root@wls12c /]$ docker port
/tcp -> 0.0.0.0:

访问http://192.168.0.80:32772,即可访问到容器中对应的8080端口。

使用-P随机映射容器内开放的端口

[root@wls12c /]$ docker run -P --name db -e MYSQL_ROOT_PASSWORD=root -d mysql
49b1c8ba70db137107ba79950854c1b758d0c4dc8f4ac16425cde73a648631f8
[root@wls12c /]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49b1c8ba70db mysql "docker-entrypoint.s 4 seconds ago Up 4 seconds 0.0.0.0:32773->3306/tcp db

指定主机端口映射,主机端口:容器端口

[root@wls12c /]$ docker run -p : -d --name web1 tomcat /bin/bash -c /root/apache-tomcat-7.0./bin/startup.sh
c2fa3f78eb52f5e45af1bb578b0a892829611175722ea0909fc890edd1347a23
[root@wls12c /]$ docker port web1
/tcp -> 0.0.0.0:

访问:http://192.168.0.80:8090即可访问到容器中对应的8080端口。

容器的互联

实现db容器和web容器的互联

创建db容器

[root@wls12c /]$ docker run  --name db -e MYSQL_ROOT_PASSWORD=root -d mysql

创建一个web容器,并将它连接到db

[root@wls12c /]$ docker run -d -P --name web --link db:db  tomcat
a0c6eded53622dc71e54892eb63d5d94b1e1ce2882d307b2de8b6dd23e0c865d [root@wls12c /]$ docker exec -it web /bin/bash
[root@a0c6eded5362 /]# env
HOSTNAME=a0c6eded5362
DB_NAME=/web/db
DB_PORT=tcp://172.17.0.76:3306
DB_PORT_3306_TCP_PORT=
DB_ENV_GOSU_VERSION=1.7
LS_COLORS=
DB_PORT_3306_TCP_PROTO=tcp
DB_ENV_MYSQL_ROOT_PASSWORD=root
PATH=/root/jdk1..0_80/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
JAVA_HOME=/root/jdk1..0_80
DB_PORT_3306_TCP_ADDR=172.17.0.76
SHLVL=
HOME=/root
DB_PORT_3306_TCP=tcp://172.17.0.76:3306
DB_ENV_MYSQL_VERSION=5.7.-1debian8
DB_ENV_MYSQL_MAJOR=5.7
_=/usr/bin/env [root@a0c6eded5362 /]# cat /etc/hosts
172.17.0.79 a0c6eded5362
127.0.0.1 localhost
:: localhost ip6-localhost ip6-loopback
fe00:: ip6-localnet
ff00:: ip6-mcastprefix
ff02:: ip6-allnodes
ff02:: ip6-allrouters
172.17.0.76 db c456ffdefca6
[root@a0c6eded5362 /]# ping db
PING db (172.17.0.76) () bytes of data.
bytes from db (172.17.0.76): icmp_seq= ttl= time=0.095 ms
bytes from db (172.17.0.76): icmp_seq= ttl= time=0.070 ms
bytes from db (172.17.0.76): icmp_seq= ttl= time=0.070 ms

--link name:alias   name为容器名,alias为容器连接的别名。

Docker-网络基础配置的更多相关文章

  1. docker网络基础配置

    常用两种方式: 1)映射容器端口到宿主机 2)容器互联机制 --------------------------------------------- 端口映射实现访问容器的用法: docker ru ...

  2. Docker网络基础:快速指南

    Docker网络基础:快速指南 原文连接:http://blogxinxiucan.sh1.newtouch.com/2017/07/30/Docker网络基础:快速指南/ 了解有关扩展网络功能的默认 ...

  3. Linux网络基础配置

    这是看itercast视频的笔记 Linux网络基础配置 以太网连接 在Linux中,以太网接口被命令为:eth0, eth1等, 0,1代表网卡编号 通过lspci命令可以查看网上硬件信息(如果是u ...

  4. docker数据卷管理及网络基础配置

    数据卷 数据卷容器 数据卷迁移数据 端口映射 容器间通信 数据卷的管理 当需要查看容器内应用产生的数据或者把容器内数据备份及多个容器数据共享.有两种方式,数据卷以及数据卷容器. 数据卷 数据卷是一个可 ...

  5. Docker 网络基础介绍

    [编者按]本文作者为 Mesosphere 开发大使 Michael Hausenblas,主要介绍配置 Docker 单主机网络的基本知识.文章系国内 ITOM 管理平台 OneAPM 编译呈现. ...

  6. 七、【Docker笔记】Docker中网络基础配置

    一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...

  7. docker的网络基础配置

    一.端口映射实现访问容器 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射.当使用-P标记时,Docker会随机映射一个49000~49900的端口至容器内部开放 ...

  8. Docker网络基础

    大量的互联网应用服务包括多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合. Docker目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务. 端口映射实现访问容器: 在启动 ...

  9. linux基础之网络基础配置

    基础命令:ifconfig/route/netstat,ip/ss,nmcli 一.ifconfig/route/netstat相关命令 1.  ifconfig - configure a netw ...

  10. docker-ce-17.09 网络基础配置

    一.端口映射实现访问容器 1.我们先从pull一个nginx镜像,然后后台运行该镜像 > docker pull nginx > docker run -d -P nginx:latest ...

随机推荐

  1. java 基本类型之间的转换

    基本数据类型从低级到高级是:byte  short int long float double ,char 类型比int 类型之后的都要低 下面通过一个例子说明: import javax.swing ...

  2. mini-treeselect 不允许选父节点的写法

    html里的控件事件:onbeforenodeselect = beforenodeselect   js里: beforenodeselect : function(e){   //禁止选中父节点 ...

  3. 20150813 Asp.net 关闭子窗体 刷新Tree控件

    主窗体************************************************************************************ using System ...

  4. Java学习之路(二)

    什么是变量? 1:计算机是一种嫉妒精确的机器 2:要将信息存储在计算机当中,就必须指明信息存储的位置和所需的内存空间: 3:在Java当中 使用声明语句来完成上述任务 变量的类型:

  5. java提高篇---ArrayList

    一.ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类 ...

  6. Java提高篇---List总结

    一.List接口概述 List接口,成为有序的Collection也就是序列.该接口可以对列表中的每一个元素的插入位置进行精确的控制,同时用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列 ...

  7. codevs1137 计算系数

    1137 计算系数 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给定一 ...

  8. IOS自定义仪表盘

      登录|注册     周海锋 的专栏 Objective-C/Cocos2d/Cocos2d-x/Php/JS       目录视图 摘要视图 订阅 2016软考项目经理实战班    学院周年礼-顶 ...

  9. Struts2的标签库(三)——控制标签

    Struts2的标签库(三) --控制标签 1.if/elseif/else标签 用于分支控制,取代JSP中的if语句,根据一个boolean(test属性的值)值判断是否进行下一步运算或者输出等. ...

  10. C#获取当前日期时间(转)

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...