• 基本概念定义

    • 基本组成

      • 客户端/守护进程

        • C/S架构
        • 本地/服务器
      • 镜像
        • 容器基石
        • 只读文件系统
        • 联合加载(union mount)
      • 容器
        • 通过镜像启动
        • 执行
        • 写时复制
      • 仓库
        • 公有

          • docker hub
        • 私有
      • 相关技术简介
        • 依赖的Linux内核特性
        • Namespace 命名空间 LXC Kernel Namespace
          • 封装 -> 代码隔离->资源隔离
          • PID 进程隔离 独立进程表
          • NET 管理网络接口 network info
          • IPC 进程通信 额外信息标记
          • MNT 挂载点
          • UTS 隔离内核和版本标识 hostname domain
          • Users 用户
        • Cgroup 控制组 分配资源 资源限制 CPU 内存
          • 资源限制
          • 优先级设定
          • 资源计量
          • 资源控制
        • chroot 隔离根文件系统
  • 基本操作
    • 启动容器 docker run Image

      • 交互 docker run -i -t Image /bin/bash

        • -name
      • 查看进程 docker ps/top [-a ] / [-l]
      • 详细信息 docker inspect +id /+ name
    • 启动停止容器 docker start -i  name/id
    • 删除容器 docker rm   删除已停止容器
  • 守护形式运行容器(长期运行)
    • 退出crtl +p ctrl+q
    • 重新进去 sudo docker attach +id/name
    • 后台执行 docker run -d
    • 查看容器日志(内部运行情况) docker logs [-f一直跟踪] [-t 加时间] [--tail最新] 名字
    • 查看运行中容器进程 docker top + id/name
    • 在运行容器(已启动)中启动运行新进程 docker exec [-d] [-i] [-name]
    • 停止运行中的容器 docker stop 发结束信号停止 /kill 直接快速停止
  • 部署静态网站
    • 容器端口映射 run -P 全部 /-p 指定
    • 安装nginx vim
    • 停止后会重新分配IP
  • 查看和删除镜像
    • docker info 查看信息,包含存储驱动
    • 列出镜像 docker images -a(所有中间层+其他镜像)/-f 过滤条件/--no-trunc(完整的ID) /-q 只查看唯一ID
    • 仓库:REPOSITORY 仓库 (一系列关联镜像集合) 组件仓库 REGISTRY(一个一个独立镜像) 标签TAG +仓库名字 =独立镜像
    • docker rmi -f 强制/ --no-prune 保留父镜像
  • 获取推送镜像
    • docker search --no-trune/-s 3
    • docker login 应该先登录
    • docker pull -a / --registry-mirror
    • docker push
  • 构建镜像
    • docker commit -a 作者/ -m 提交信息/-p 暂停
    • docker build -t 标签 -q 不显示中间过程 利用Dockerfile创建
  • Docker c/s模式
    • Remote API CS 可远程
    • 三种连接方式 1.unix :///var/rundocker.sock (默认) 2.tcp://host:port 3.fd://socketfd
      • 命令
      • 服务连接相关 sdocker -d -D - H(host)
      • Remote API相关
      • 网络设置相关 --ip = 0.0.0.0
      • 仓库相关
      • 存储相关
    • 启动配置文件 /etc/defaut/docker 修改后 要重启服务
    • 远程访问
  • Dockerfile 指令
    • FROM 基础镜像
    • MAINTAINER 作者信息
    • RUN 运行命令
      • shell模式 RUN <command> exec模式 RUN ["executable", "param1", "param2"] 运行其他shell
    • EXPOSE <> 多个端口 不能自动需再添加
    • CMD (指定命令,参数,容器运行时默认行为 类似RUN, 会被覆盖) ENTERPOINT(跟CMD一样 )
    • ADD <src> ...<dest> (包含解压缩功能) COPY<src>..<dest>(普通复制推荐) VOLUME ["/data"] 共享数据
    • WORKDIR /绝对路径 设置工作目录 ENV <key><value> <key>=<value> 环境变量
    • USER daemon 用户/用户组/默认root ONBUILD [INSTRUCTION] 镜像触发器
    • Dockfile 构建过程
      • 运行基础镜像 执行指令 提交 删除中间层容器(不删镜像)
      • 可以通过调试中间层镜像
      • 自动构建缓存 添加--no-cache 不构建缓存 ,刷新 | ENC REFRESH_DATE 2019-05-01修改时间就可刷新
      • docker hsitory 查看镜像构建过程
  • 网络连接
    • 网络基础

      • Docker0 提供虚拟网桥 可以设置IP地址 相当于虚拟网卡
      • 建立虚拟网侨 brctl addbr br0 && ifconfig br0 192.168.2.100 netmask 255.255.255.0
      • 修改默认配置 -b=br0 重启容器
    • 互联
      • 默认允许所有容器互联

        • --icc =ture 全部可ping 通,同一个虚拟网桥,IP不可靠连接(ip变化)
        • --link = cct1:webtest(别名) 环境变量env自动更新webtest,hosts也自动更新 wetest
      • 拒绝连接
        • --icc =false更改默认配置 全部拒绝
      • 特定连接
        • --icc =false   --iptables=true    --link     只允许link配置的容器连接
    • 连接外部网络
      • --ip-forword=true 允许流量转发 查看 sysctl net.ipv4.all.forwarding
      • iptables linux包过滤防火墙 系统
        • 表table nat fitter mango
        • 链chain INPUT FORWARD
        • 规则rule ACCEPT REJRECT DRON
      • 允许端口映射访问
      • ‘限制IP访问容器
  • 数据管理
    • 数据卷

      • 独立于UFS 数据共享 不会因容器关闭而消失 放在host主机中
      • docker run -it -v ~/datavalume:/data ubuntu /bin/bash
      • 添加权限 docker run -it  -v ~/datavalume:/data:ro     ubuntu /bin/bas
      • dockerfile 生成同名的数据卷是不同地址,故不能共享数据
    • 数据卷容器
      • 挂载数据卷容器 docker run -it --volume-from 镜像名字
      • 及时删除了基类数据卷容器 ,不受影响, 数据卷不受容器影响
    • 数据备份还原,迁移
      • docker run -it --volume-from image -v $(pwd)/data:/data: wr ubuntu tar cvf /data/dvt5.tar /data/datavolume1 (压缩,解压缩类似)
  • 跨主机连接
    • 使用网桥

      • 两主机 管理工具bridge-utils 同一网段
      • 修改 /etc/network/interfaces | address network gateway bridge_port( eth0)
      • 修改 /etc/default/docker |-b = br0 --fixed-cidr
      • 优点 配置简单,不依赖 缺点:同网段 划分网段,不易实现和管理
    • Open vSwitch 通常使用 apache2.0许可 虚拟开源多层交换机 gre 通用路由协议,隧道技术
      • openvswitch - switch |网桥工具 bridge-utils
      • 建立ovs网桥 |添加gre连接 |配置虚拟网桥 OVS接口
    • weave 开源项目
      • 安装启动weave 增加执行权限|weave launch 192.168.59.103(第一台电脑ip)
      • c2id=$(weave run 192.168.2/24(分配ip地址) -it Ubuntu /bin/bash)

Docker 学习 | 基础命令的更多相关文章

  1. Docker 学习之命令篇

      Docker 学习之命令篇 1. docker images //镜像列表 2. docker ps –a //所有运行过的容器 3. docker ps –l 最后运行的容器 4. docker ...

  2. 【03】循序渐进学 docker:基础命令

    写在前面的话 之前谈了啥是 docker 和怎么安装 docker,这里就谈谈 docker 命令的使用,当然,这里的使用可能只是局限于 docker 的增删查改. 另外需要注意的是,为了图片的美观, ...

  3. docker入门 基础命令 docker安装

    docker入门   在学一门新知识的时候,超哥喜欢提问,why?what?how? wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes ...

  4. docker学习-常用命令2

    三.容器管理命令3.1 Docker commit 命令,从容器创建一个新的镜像.OPTIONS说明: -a :提交的镜像作者: -c :使用Dockerfile指令来创建镜像: -m :提交时的说明 ...

  5. docker学习-常用命令1

    一.容器管理 1.1 Docker start/stop/restart/rm 命令实例:启动|停止|重启|删除 容器mydb01# docker start|stop|restart|rm mydb ...

  6. Docker - 常用基础命令

    Docker命令分布 帮助信息 查看docker基本信息:docker info 查看docker版本信息:docker version 查看docker的所有命令及选项:docker --help ...

  7. (三)、Docker常用基础命令

    1.Docker 帮助命令 帮助命令: docker version 查看版本 docker info 查询docker详细信息 docker --help 查看命令帮助 2.Docker 镜像命令 ...

  8. Docker系列——Docker安装&基础命令

    Docker 概述 Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. ...

  9. Docker 学习之命令详解

    1. docker version docker version 显示 Docker 版本信息. 2. docker info docker info 显示 Docker 系统信息,包括镜像和容器数. ...

随机推荐

  1. 如何编译和调试Python内核源码?

    目录 写在前面 获取源代码 源代码的组织 windows下编译CPython 调试CPython 小结 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 如果对Pyth ...

  2. 自学导航页(待续ing)

    1 博客导航1.1 linuxlinux全线教程–提供了linux教程,服务器管理教程,BSD教程,还有编程语言(C/Java/Python/Perl),以及网络等全栈学习教程 1.2 存储技术NoS ...

  3. smp_processor_id()获取当前执行cpu_id

    基于Linux 2.6.32内核进行分析,看本篇文章前,建议先看看percpu变量这篇文章 smp_processor_id()用来获取当前cpu的id,首先来看smp_processor_id的定义 ...

  4. python编程基础之五

    转义字符:就是不方便从键盘之间输出,或者是原字符有特殊含义的一些字符, 下面列举几个常用的转义字符 \',\",\''',\""",\\,都是表示原字符的意思, ...

  5. C# 创建自定义配置节点1

    转载:http://www.educity.cn/develop/495003.html 在.Net应用程序中我们经常看到VS为我们生成的项目工程中都会含有app.config或者web.connfi ...

  6. 实体对象属性和值转为键值对Dictionary

    实体对象转为Dictionary键值对 /// <summary> /// 实体转键值对 /// </summary> /// <typeparam name=" ...

  7. SQL SERVER数据库,按年、月、日、时、分、秒计算两个时间字段之间的间隔时间样例

    使用DATEDIFF(取值,时间字段1,时间字段2) 举例: SELECT DATEDIFF(YEAR,DRYSJ,DCYSJ),* FROM YXHIS2019..TBZYBR2019 --SQL ...

  8. 帝国cms网站管理系统之安全设置最优化分享

    首先我们来认识一下帝国CMS安全认证特性:帝国登录四重安全验证:第一重:密码双重MD5加密,密码不可破解,假如数据库被下载,也无法获取真实密码.第二重:后台目录自定义,假如对方知道密码也找不到登录后台 ...

  9. css div 自适应内容

    .adapt-content{ display:inline-block; *display:inline; ; } 见:http://www.cnblogs.com/refe/p/5051661.h ...

  10. vue——父子组件间传值

    (1)父组件给子组件传值(商品详情页): 根据订单类型,判断显示立即购买/立即拼单: 通过props来传递参数 父组件(商品详情页) 父组件调用子组件,在子组件的标签中,通过:数据名称=”数据”的形式 ...