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

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

  1、-P随机分配端口

  # docker pull training/webapp  下载镜像文件

  # sudo docker run -d -P training/webapp python app.py  运行镜像文件

  # docker ps  查看docker运行进程

  # docker logs -f laughing_montalcini  查看日志文件(docker logs -f -t --tail 行数 容器名)

  2、-p指定端口

  # docker run -d -p 5000:5000 training/webapp python app.py

  # docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py  指定ip地址的指定地址

  # docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py  指定ip地址的任意地址

  # docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py  指定协议

  3、查看端口绑定地址:# docker port laughing_montalcini 5000  (docker port 容器名 容器内端口)

  使用docker inspect 容器id 可以查看容器的所有信息

二、容器之间的通信

  以数据库和程序的连接为例

  # docker pull training/postgres

  # docker run -d --name db training/postgres

  # docker run -d -P --name web --link db:db training/webapp python app.py

  Docker在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上。在启动db容器的时候并没有使用-p和-P标记,从而避免了暴露数据库端口到外部网络上。

  # docker run --rm --name web- --link db:db training/webapp env  使用env命令来查看web容器的环境变量

  # docker run -t -i --rm --link db:db training/webapp /bin/bash  Docker还添加host信息到父容器的/etc/hosts的文件。下面是父容器web的hosts文件

  # cat /etc/hosts  这里有两个hosts信息,第一个是web容器,web容器用自己的id作为默认主机名,第二个是db容器的ip和主机名。

  # apt-get install -yqq inetutils-ping  在web容器中安装ping命令来测试跟db容器的连通

  # ping adb

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

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

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

  2. Linux网络基础配置

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

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

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

  4. Docker容器网络-基础篇

    开源Linux 一个执着于技术的公众号 Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/N ...

  5. docker 容器网络基础

    ======================== docker缺省自带的网络 ======================== host 网络, This enables a container to ...

  6. docker的网络(基础)

    Docker的网络子系统是可插拔的,使用驱动程序.默认情况下存在多个驱动程序,并提供核心网络功能: bridge:docker默认的网络驱动.如果未指定驱动程序,则这是需要创建的网络类型.当应用程序在 ...

  7. docker网络基础配置

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

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

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

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

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

随机推荐

  1. 程序模拟HTTP请求

    1. 使用HttpClient 前面拼接StringContent string strContent = "client_id=client&client_secret=secre ...

  2. git使用时的一下简单命令

    一.简介 SVN集中式版本控制系统 分布式版本控制系统 二.使用git 1.git init 将这个命令变成git可管理的仓库 2.git add filename 将这个文件添加到仓库 3.git ...

  3. 初识Docker和安装

    什么是Docker Docker的构想是要实现“Build,Ship and Run Any App,Anywhere”,即通过对应用的封装(Packaging).分发(Distribution).部 ...

  4. java面试①整体流程

    http://www.toutiao.com/i6463396763549041166/ 1.1 简单的自我介绍 我是xxx工作了xx年,在xx公司,做过xx项目, 1.2你简单介绍一下xxx项目 为 ...

  5. 开例外!微信小程序登录绕过CAS单点登录(SSO)认证检查

    1 为了让微信API能够绕过CAS认证检查,将微信api入口部分设计为独立的模块.放入controller目录下,命名为wechat.java文件为WechatController.java 文件大体 ...

  6. 17.async 函数

    async 函数 async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 ...

  7. [转]SQL SERVER中openrowset与opendatasource的区别

    本文转自:http://blog.sina.com.cn/s/blog_6399df820102vyy8.html SQL SERVER中openrowset与opendatasource的区别: o ...

  8. ASP.NET MVC 获得 view 中的HTML并将其中的内容自动转换成繁体中文。

    一.思路 1.获得 asp.net mvc 输出的 html 的字符串. 2.将拿到的 html 字符串中的简体中文转换成繁体中文. 3.输出 html. 二.实现 1.扩展 RazorView 视图 ...

  9. Java基础教程(20)--数字和字符串

    一.数字   在用到数字时,大多数情况下我们都会使用基本数据类型.例如: int i = 500; float gpa = 3.65f; byte mask = 0xff;   然而,有时候我们既需要 ...

  10. int类型转换byte类型

    计算机中,int类型占用4个字节,byte类型占用1个字节: 当int类型强转为byte类型时,计算机会截取最后的八位(1个字节): 由于计算机存储数据时,都是以补码的形式进行存储. 然而,我们通常看 ...