4.4学docker2

11.docker的cs模式


//客户端和守护进程的模式运行
守护进程运行在宿主机上(server端)启动后一直在后台运行,负责实现docker的各种功能
daocker的使用者不会直接和守护进程交互,通过客户端即daocker的命令行接口交互(或者remote API)
//如何连接
    unix:///var/run/docker/sock
    tcp://host:port
    fd://socketfd



11.守护进程的配置和操作

#查看docker守护进程的运行状态
    ps -ef|grep docker
    sudo status docker
#启动停止和重启docker守护进程
    sudo service docker start
    sudo service docker stop
    sudo service docker restart
#启动项
    docker -d [options]
        运行相关
        docker服务器链接相关
        remotAPI相关
        存粗相关
        registry相关
        网络设置相关
    https://docs.docker.com/reference/commandline/cli
#启动配置文件
    sudo vim /etc/default/docker

12.docker 远程访问

准备
    第二台安装docker的服务器
    docker version
    修改docker守护进程启动项,区别服务器
    "Label name=docker_server_2" //
    docker info 查看 //区别服务器
    "H tcp://0.0.0.0:2375 " //服务器改成 使之可以被找到
    curl http://10.211.55.5:2375/info //可以查看服务器的信息
    docker-H tcp://10.211.55.5:2375/info //用客户端访问
    export DOCKER_HOST="TCP://10.211.55.5:2675" //添加环境变量 就不需要麻烦
    保证clientAPI 与serverAPI一致


13dockerfile指令

#Comment
INSTRUCTION argument
    FROM指令  基础镜像,必须是非注释的第一条
        FROM <image>
        FROM <image>:<tag>  
    MAINTAINER <name>  指出作者信息
        包含所有者和联系信息
    RUN指令  指定当前镜像中运行的命令,每一个RUN指令都会在之前的镜像上新建一层
        RUN <command> (shell模式)
            /bin/sh -c command 在这下面执行
            eg. RUN echo hello
        RUN ["executable","param1","param2"] (exec 模式)
            eg. RUN ["/bin/bash","-c","echo hello"] 
    EXPOSE<port>[<port>]指令 指定运行改镜像的容器使用的端口
        使用容器是还是需要自己映射端口

    CMD 指定容器运行时运行的命令
        CMD <command> (shell模式)
        CMD ["executable","param1","param2"] (exec 模式)
    ENTERYPOINT 不会被覆盖

    ADD<src><dest>  有解压作用
    COPY<src><dest>

    VOLUME["/data"] 

    WORKDIR 
    ENV<key><value>
    USER deamon

    ONBUILD[instruction]

14.dockerfile 构建镜像的过程

从基础镜像运行一个容器
执行一条指令,对容器作出修改
执行docker commit 的操作,提交一个新的镜像层
在基于刚提交的镜像运行一个新的容器
在执行dockerfile的下一条指令
......
结束


用docker build -t="路径"   执行dockerfile 文件

构建缓存
    docker build  --no-cache 不缓存
查看构建过程 
    docker history 镜像名

15.容器的网络链接基础

docker0设备 使用ifconfig,可以查看 
    docker守护进程通过docker0给容器提供网络链接
    是一个 虚拟网桥
        可以设置ip地址
        是一个隐藏的虚拟网卡

如果想要查看 需要先安装网桥管理工具
    sudo apt-get install bridge-utils
    sudo brctl show //查看网桥设备


16.容器的互联

默认
    允许所有的容器相互链接
    --icc=true
    可以通过ip地址链接 不可靠
    --link=[containername:bie_name] //可以用别名访问  可靠
拒绝容器键互联
    配置 --icc=false
允许特定容器间的链接
    配置--iptables=true
    --link

17.docker与外部网络链接

ip_forward==true
    允许流量转发
iptables
    与linux内核集成的包过滤防火墙
    表
    链
    规则
允许端口映射访问
限制ip访问容器

18.数据管理

数据卷
    是经过特殊设定的目录,可以绕过联合文件系统,为一个或多个容器提供访问
    设计目的是数据的永久化
    为容器添加数据卷
        sudo docker run -v ~/container_data:/data -it ubuntu /bin/bash
                    启动 包含数据卷  本机目录    在容器目录 的容器
    为数据卷添加访问权限
        sudo docker run -v ~/datavolume:/data:ro -it ubuntu /bin/bash
                                            只读权限
        可以在dockerfile里面 VOLUME创建数据卷(不能绑定只能创建 无法共享)
数据卷容器
    命名的容器挂载了数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器叫做
    docker run --volumes-from [container name] -v $(pwd):/backup ubuntu 
                        挂载  已经挂载了数据卷容器的名字 挂载的位置
                                只传递了数据卷的信息  

备份还原
    docker run --volumes-from [container name] -v ~/backup: --name dvt10 tar...




19.docker跨主机的链接

使用网桥 
    配置简单,不依赖第三方软件
    需要小心划分ip地址
    不容易管理
    兼容性不佳

使用 Open vSwitch

使用 weave 一个开源项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值