docker-网络基础配置和dockerfile

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的实战还需加强学习

  

  

猜你喜欢

转载自www.cnblogs.com/lidaye1928/p/10739453.html