一、端口映射实现访问容器

1、我们先从pull一个nginx镜像,然后后台运行该镜像

> docker pull nginx
> docker run -d -P nginx:latest

使用-P标记,docker会随机映射一个端口至容器内部开放的网络端口。

然后在本地主机上通过32773端口就可访问容器内的服务

如果出现如下问题:

WARNING: IPv4 forwarding is disabled. Networking will not work.

修改/etc/sysctl.conf,添加如下代码:

> vi /etc/sysctl.conf
net.ipv4.ip_forward=1

然后重启network服务

> systemctl restart network

当然我们也可以自已定义映射的端口

> docker run -d -p 8881:80 nginx:latest

把主机的8881端口映射到容器80端口

我们也可以指定地址来映射端口

> docker run -d -p 192.168.137.222:8882:80 nginx:latest

查看映射端口配置(676b282131f3是容器ID):

> docker port 676b282131f3

二、容器互联实现容器间通信

容器间的连接,会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。

1、我们先创建一个mysql容器

> docker pull mysql
> docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest

--name可以自定义容器名称

2、再创建一个nginx容器,并连接到mysql容器

> docker run -d -P --name nginx --link mysql:mysql nginx:latest

3、我们进入nginx容器,这时我们就可以访问mysql容器

> docker inspect --format "{{.State.Pid}}" c6b1b49cabf4
> nsenter --target 3756 --mount --uts --ipc --net --pid
> ping mysql

3756表示通过第一条语句查询出的容器进程PID。

官方默认nginx容器没有安装ping,需自行安装。

我们也可以看看/etc/hosts下mysql到底被解析到了哪里。

docker-ce-17.09 网络基础配置的更多相关文章

  1. Linux网络基础配置

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

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

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

  3. [IOT] - Raspberry Pi 4 Model B 系统初始化,Docker CE + .Net Core 开发环境配置

    本教程为在 Docker 中配置 .Net Core,如果想在树莓派 Raspbian 系统中配置 .Net Core,请参考:[IOT] - 在树莓派的 Raspbian 系统中安装 .Net Co ...

  4. 怎么安装Docker CE 17( Centos 7)

    Docker CE for Centos 7 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manage ...

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

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

  6. docker网络基础配置

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

  7. docker的网络基础配置

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

  8. Docker的三种网络代理配置

    开源Linux 长按二维码加关注~ 上一篇:IPv6技术白皮书(附PDF下载) 有时因为网络原因,比如公司NAT,或其它啥的,需要使用代理.Docker的代理配置,略显复杂,因为有三种场景.但基本原理 ...

  9. Docker桥接宿主机网络与配置固定IP地址

    有些需求是把这个容器与宿主机在同一个网段,但是本人不建议这样子去操作,因为一个容器本身就是一个封装好的服务.建议去按默认的网络去实现. 临时设置 [root@linux-docker01 ~]# vi ...

随机推荐

  1. ADO数据库操作方式

    微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件.它提供了编程语言和统一数据访问方式OLE DB的一个中间层.允许开发人员编写访问数据的代码而不用关心数 ...

  2. CentOS 6.x 默认源中带了mysql-server,可以使用yum安装。

    1.执行安装命令:yum install mysql-server 2.初始化数据库,使用命令1# service mysqld start   启动MSQL service mysqld stop  ...

  3. 13.Java国际化.md

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  4. C++ AfxBeginThread的介绍/基本用法

    AfxBeginThread    用户界面线程和工作者线程都是由AfxBeginThread创建的.现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一 ...

  5. JS计算滚动条的宽度

    1.此方法检验成功 function getScrollbarWidth() { var oP = document.createElement('p'), styles = { width: '10 ...

  6. 在windows上通过ssh远程链接linux服务器[转]

    本文分别转自 [http://jingyan.baidu.com/article/6d704a130de40e28db51cab5.html] [http://www.cnblogs.com/mliu ...

  7. spark 学习_rdd常用操作

    [spark API 函数讲解 详细 ]https://www.iteblog.com/archives/1399#reduceByKey [重要API接口,全面 ] http://spark.apa ...

  8. Generative Adversarial Networks,gan论文的畅想

    前天看完Generative Adversarial Networks的论文,不知道有什么用处,总想着机器生成的数据会有机器的局限性,所以百度看了一些别人 的看法和观点,可能我是机器学习小白吧,看完之 ...

  9. redis序列化异常------------org.springframework.data.redis.serializer.SerializationException

    异常信息; org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested e ...

  10. msf客户端渗透(六):抓包、搜索文件、破解弱口令、修改MACE时间

    嗅探抓包 查看网卡 指定网卡,因为资源有限,默认抓满50000个包如果不dump下来,就会自动销毁掉,从0开始抓. dump嗅探到的文件到本机,传递到本机的过程是结果ssl加密的 dump了两个文件 ...