Docker容器与虚拟化技术——Docker数据管理与网络通信

                                             Docker数据管理与网络通信

一、Docker镜像的创建方法
Docker镜像除了是Docker的革新技术之外,也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行。如果要把已安装的服务器进行迁移,就需要把环境以及搭建的服务生成新的镜像
1、基于已有镜像创建
    基于已有镜像创建主要使用docker commit命令。实质就是把一个容器里面运行的程序以及该程序的运行环境打包起来生成新的镜像
    命令:docker commit [选项] 容器ID/名称 仓库名称:[标签]
        (1)-m:说明信息
        (2)-a:作者信息
        (3)-p:生成过程中停止容器的运行

2、基于本地模板创建
    通过导入操作系统模板文件可以生成镜像,模板可以从OPENVZ开源项目下载(http://openvz.org/Download/template/precreated)
    实例:cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new

3、基于Dockerfile创建
    Dockerfile是一个文本格式的配置文件,用户可以使用它来快速创建自定义的镜像
(1)基本结构
Dockerfile由一行行命令语句组成,支持以#开头的注释行。
一般而言,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
(2)指令说明
Docker容器与虚拟化技术——Docker数据管理与网络通信
(3)创建镜像:docker build [选项] 内容路径
    ①如果使用非内容路径下的Dockerfile,可以通过-f选项来指定路径
    ②要指定生成镜像的标签信息,可以使用-t选项
 

二、Docker的数据管理
    在Docker中,为了方便查看容器内产生的数据或者将多个容器中的数据实现共享,就涉及到容器的数据管理操作。管理Docker容器中数据主要有两种方式:数据卷和数据卷容器
1、数据卷
(1)创建数据卷
    在docker run命令中使用-v选项可以在容器内创建数据卷,多次使用可创建多个数据卷
    docker run -d -v /data centos:7.5.1804 /bin/basha
(2)挂载主机目录作为数据卷
    docker run -d -v /data:/data centos:7.5.1804 /bin/basha
(3)挂载本地主机文件作为数据卷
    -v标记也可挂载单个文件到容器中作为数据卷(不推荐)

2、数据卷容器
    如果用户需要在多个容器之间共享一些持续更新的数据卷,最简单的方式是使用数据卷容器,数据卷容器也是一个容器,但是他的目的是专门用来提供数据卷供其他容器挂载
(1)创建数据卷容器,并在其中创建一个数据卷
(2)其他容器在创建时使用--volumes-from [容器名]来挂载该容器中的数据卷
(3)可以多次使用--volumens-from选项来挂载读个数据卷,还可以从其他已经挂载了容器卷的容器来挂载数据卷
 

三、端口映射与网络互连
1、端口映射实现访问容器
(1)从外部访问容器应用
    ①-P:随机映射一个49000-49900的端口到容器内部开放的端口网络
    ②-p:指定要映射的端口,且在一个指定端口上只可以绑定一个容器
    ③可以使用/udp|tcp来指定端口
(2)查看映射端口配置
    docker port
2、互联机制实现便捷访问
(1)自定义容器名
    使用--name来自定义容器名
(2)容器互连
    使用--link参数恶意让容器之间安全的进行交互:--link 要连接的容器名:别名
    容器内部用别名替代IP地址实现互联,如:ping 别名=ping IP