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. 周强、张季跃,马凯军《面向对象与程序设计Java》第十四周学习总结

    实验十四  Swing图形界面组件 实验时间 20178-11-29 理论部分:不使用布局管理器 有时候可能不想使用任何布局管理器,而只 是想把组件放在一个固定的位置上.下面是将一 个组件定位到某个绝 ...

  2. 浅谈java中的祖先类Object

    首先一道题: public class User{ private String name; private int age; public String getName() { return nam ...

  3. 王者荣耀交流协会互评Beta版本--爱阅app

    测评人:任思佳 爱阅APP软件说明书地址:http://www.cnblogs.com/szjzsd/p/7881686.html 1.根据NABCD评论作品的选题:   N(Need):相比α发布来 ...

  4. python中用psutil模块,yagmail模块监控CPU、硬盘、内存使用,阈值后发送邮件

    import yagmailimport psutildef sendmail(subject,contents): #连接邮箱服务器 yag = yagmail.SMTP(user='邮箱名称@16 ...

  5. spring cloud_1_mm_eureka

    有的人不知道导什么包 什么版本好 可能教程版本十几根本不能用 这里建议直接用idea生成 避免麻烦 eureka-sever application.yml #注册中心端口 server: port: ...

  6. Java基于opencv实现图像数字识别(三)—灰度化和二值化

    Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...

  7. frag

    <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=&qu ...

  8. c——闰年

    PTA #include<stdio.h> int main() { int year,month,day,cnt,flag; flag = ; scanf("%4d/%2d/% ...

  9. K-means算法应用:图片压缩

    plt.imshow(china[:,:,2]) plt.show() from sklearn.datasets import load_sample_image china=load_sample ...

  10. vue.js学习第一天,了解vue.js

    vue.js是一个前端框架,他与jquery不同,jquery是一个js库,而vue.js是js的前端框架. vue.js对我们前端页面入侵比较大,而jquery则不然.那我们还为什么要使用vue.j ...