00x1:

  端口映射:

  如图:这就是把容器的 5000端口和主机的32768端口相映射,所以通过访问主机的32768端口就可以访问容器的web界面

  这个端口是系统默认的如果自定义命令:docker run -d -p 5123:5000 training/webapp python app.py

  同时可以多端口映射,可映射指定ip。

  

  

  docker logs -f training/webapp 查看容器内web应用信息

 

  docker port 容器名查看映射端口情况,有时候多端口映射的时候有用

 

 00x2:实现两个容器的连接

  实现容器之间的互相通信: 在源容器和接受容器之间的创建一个隧道也就是容器互联:

  命令是link  参数是 link name:alias     name 是连接容器的名字,而alias 是隧道也就是连接的名字:举个实例:是web容器和数据库容器之间的联系

  先创建数据库容器:先下载镜像: docker pull training/postgres

  然后创建数据库容器: docker run -d  -P --name db training/postgres

  先删除之前下载的webapp/training 容器web,然后创建新的容器和数据库容器建立联系

  docker rm -f web

  建立新的容器连接db容器

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

  这个命令就是创建了名字叫 db的链接,链接的web容器和db容器 如图:

  

  docker ps查看连接情况:

  这个注意的是数据库安全情况,没有用-p 为了不让数据库端口暴露在主机上

  env命令可以查看连接容器的环境变量

  还可以在容器的/etc/host 里面查看具体ip

 00x3:Dockerfile 详情:

  Dockerfile 分为四个部分: 基础镜像信息,维护者信息,镜像操作指定,和容器启动指令,它是由一条一条语句组成,支持#号开头的注释行

  Dockerfile 基本命令: dockerfile 就是利用一系列的指令的顺序解析实现自动的image

通过build 命令执行dockerfile 的描述来构建镜像,dockerfile client 会把整个context 打包发送到Docker

Server端,然后server端build镜像,成功后删除context目录

  Dockerfile catch : 每次都会执行命令后提交一个镜像,如果要重新使用之前的镜像,可以通过-no-cache的方式来禁用这个cache

  Dockerfile 大小写不敏感,但是建议全部大写

  FROM 镜像  必须第一行

  MAINTAINER 标识镜像的作者

  RUN: run就是启动容器,执行命令,然后提交存储层文件变更,如果执行多条命令:需要加上:&& 符号可以有多个run,支持的是两种运行方式:RUN <CMD> /bin/sh -c "cmd" 运行

  CMD命令:CMD命令的作用是容器的默认启动命令,就是执行container的默认操作

  一个dockerfile 只要一个cmd 命令 ,当有多个cmd命令的时候,只执行最后一条。

  EXPOSE声明端口:

  格式是: EXPOSE <端口1><端口2>  这个只是一个声明,不会真正的应用,但是当随机映射端口的时候,也是docker run -P的时候,会自动的使用这个镜像服务端口

  ENV:

  ENV key value

  用来设置环境变量: 当镜像创建容器的时候自动设置环境变量

  WORKDIR 指定当前的工作目录

  这仅仅是基础知识,对于dockerfiles的实战还需加强学习

  

  

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

  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 ...

随机推荐

  1. django 单点登录思路-装饰器

    def the_one(func): '''自定义 验唯一证在线 装饰器''' def check_login_status(request): if request.session.get('qq' ...

  2. Springboot中的事件Event

    事件Event作为一种常用的线程通讯工具,在Springboot中可以方便地提供开发者进行线程交互. 1.事件定义 1 import org.springframework.context.Appli ...

  3. 2018-软工机试-F-庙会

    单点时限: 1.0 sec 内存限制: 256 MB 是谁带你来看这场庙会 行为掩饰后超越了思维 舞台上的小丑和你的左小腿 别管我,别把我和他们扯在一起 ——李志<鸵鸟> 来到这场庙会,现 ...

  4. linux 常见技巧

    1.# :表示权限用户(如:root) $:表示普通用户 开机提示:login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后, 可以进入相应的用户环境. 退出当前shell,输 ...

  5. Ubuntu下useradd与adduser区别

    Ubuntu下useradd与adduser有所不同 1.useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个 ...

  6. react-native-printer

    react-native-printer A React Native Library to support USB/BLE/Net printer for Android platform Inst ...

  7. .Net memory management Learning Notes

    Managed Heaps In general it can be categorized into 1) SOH and 2) LOH.  size lower than 85K will be ...

  8. 1040 mysql Too many connections

    笔者在项目中遇到mysql 出现:1040 too many connections 异常,意思是超过数据库最大连接数,打不开表结构信息.笔者排除问题建议:1.查看程序代码是否存在BUG:2.检查代码 ...

  9. shell中的函数、数组、报警系统脚本

    1.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 个小单元的名字即可.格式: function f_name() {commond} ...

  10. Python基础:七、注释

    有时候我们写的东西不一定都是给用户看的,或者不希望解释器执行(方便自己,方便他人),我们可以使用#来注释掉代码被注释的内容是不会执行的,可以方便后面的程序员来拜读你的代码. 1. 单行注释:#被注释的 ...