zoukankan      html  css  js  c++  java
  • 34) Docker入门【2】

    6- 网络

    6.1- docker0

    docker0是一个虚拟网桥。
    linux 虚拟网桥特点:

    • 可以设置ip地址
    • 相当于拥有一个隐藏的虚拟网卡

    docker0的地址划分:

    • ip: 172.17.16.1 掩码: 255.255.255.0

    • mac: 02:42:ac:11:00:00 到 02:42:ac:11:ff:ff

    • 一共65534个地址
      修改docker0的地址:

      ifconfig docker0 10.0.0.1 netmask 255.255.255.0

    6.2- 自定义虚拟网桥

    brctl addbr br0 ##添加虚拟网桥
    ifconfig br0 192.168.100.1 netmask 255.255.255.0
    
    vi /etc/default/docker
    DOCKER_OPS="-b=br0"
    service docker restart
    

    6.3- 容器间互联

    允许使用别名连接其他容器(即使其他容器Ip地址改变也可以连接),docker会自动修改ip地址和别名之间的映射。
    改变了etc/hosts里面的内容和env环境变量的内容。

    docker run --link=[container_name]:[alias] [image] [command]
    

    6.4- 拒绝所有容器间互联

    vi /etc/default/docker
    DOCKER_OPS=” --icc=false"
    

    6.5- 允许特定容器间互联

    vi /etc/default/docker
    DOCKER_OPS=" --iptables=true"  #允许docker修改linux的iptables配置
    

    6.6- 容器与外部网络的连接

    • ip_forward
    • iptables
    • 允许端口映射访问
    • 限制IP访问容器

    【ps】:ip_forward: linux的系统变量,决定系统是否会转发流量。

    vi /etc/default/docker
    DOCKER_OPS" --ip_forward=true" #默认,会将系统的ip_forward参数设置为1
    

    7- 数据管理

    7.1- 容器的数据卷

    7.1.1- 数据卷介绍

    _ _ _ 数据卷是经过特俗设计的目录,可以绕过联合文件系统UFS,为一个或多个容器提供访问。

    7.1.2- 目的

    _ _ _ 目的在于数据的持久化,数据卷完全独立于容器的生存周期。Docker不会再容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制对容器引用的数据卷进行处理。

    7.1.3- 特点

    • 在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到初始化的数据卷中。
    • 可以在容器之间共享和重用
    • 可以对数据卷的内容直接进行修改
    • 数据卷的变化不会影响镜像的更新
    • 卷会一直存在,即使挂载数据卷的容器已经被删除

    7.1.4- 挂载数据卷

    docker run -v /host_dir:/data -it centos /bin/bash
    
    • /host_dir 必须存在
    • /data如果不存在,则自动创建。

    使用dockerfile 制作的镜像里面默认挂在的数据卷,启动容器时,是自动在
    /var/lib/docker/vfs/dir里面自动分配的目录,这个生成的容器,相互之间的数据独立的

    7.2- 数据卷容器

    7.2.1- 介绍

    _ _ _ 命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,被挂载数据卷的容器,就叫做数据卷容器。

    如图:

    • Data container可以是正在运行或者停止的容器
    • 此时container所挂载是数据卷,实际为data container已经挂载的所-
    • 在/var/lib/docker/vfs/dir里面的目录
    • data container删除了,但是data container曾经挂载的volume是不删除。即是/var/lib/docker/vfs/dir里面的目录不会删除,依然可以被container挂载使用

    7.2.2- 挂载数据容器

    docker run --volumes-from [container_name]
    

    7.3- 数据卷的备份和还原

    7.3.1- 数据备份

    docker run --volumes-from [container_name] -v $(pwd):/backup centos tar cvf /backup/backup.tar [container data volume]
    

    例如:

    docker run --volumes-from backup1 -v /backup:/backup --name backup2 centos tar cvf /backup/backup.tar /datavolume
    

    7.3.2- 数据恢复

    docker run --volumes-from [container_name] -v /backup:/backup centos tar xvf /backup/backup.tar [container data volume]
  • 相关阅读:
    centos7安装nginx和php7启动脚本
    centos7 安装nginx遇到的坑
    php7.2 编译遇到的坑
    yum源更新
    redis
    nginx日志分割
    Docker部署LNMP完整教程
    浅谈JavaScript词法分析步骤
    PHP面向对象中的重要知识点(一)
    Mysql精华版(命令大全)
  • 原文地址:https://www.cnblogs.com/lemanlai/p/12402001.html
Copyright © 2011-2022 走看看