• 基本概念定义

    • 基本组成

      • 客户端/守护进程

        • 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. 500行代码,教你用python写个微信飞机大战

    这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手. 帮助蹲厕族.YP族.饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右 ...

  2. Node.js入门教程 第五篇 (Express框架)

    Express框架 Express是适用于Node.js web的框架,提供了大量实用功能,例如路由功能及http功能. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了 ...

  3. markdown下载、安装、破解、汉化与常用语法

    markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 一.markdown下载 markdown破解版下载地址: http://www.pc6.com/ ...

  4. JAVA保留小数点位数

    /** * java 如何保留指定位数的小数 * @author Administrator * */ public class Test04 { public static void main(St ...

  5. SpringBoot项目配置Tomcat和JVM参数

    设置Tomcat端口号和连接数等 使用application.properties配置文件有一些参数无法设置,所以推荐创建一个类文件来配置,如下: package com.qipai.springbe ...

  6. opencv::图像矩(Image Moments)

    矩的概念介绍 1.几何矩 2.中心距 3.中心归一化距 4.图像中心Center(x0, y0) 计算矩 moments( InputArray array, // 输入数据 bool binaryI ...

  7. libevent::事件

    /***************************************************************** 函数功能: 创建事件集 ********************* ...

  8. 微信企业号开发入门(回调模式)java

    最近在开发微信企业号,刚接触时云里雾里的,在摸索过程中终于清晰了一点. 刚开始我以为订阅号.服务号.企业号的接口差不多,就一直用订阅号的教程来入门,后来才发现差的挺多的. 首先,微信企业号不像订阅号和 ...

  9. 扩展阿里p3c实现自定义代码规范检查

     前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!.虽然改动很小,但就是觉得憋屈.fastjson还是挺好的,想着禁用的话太 ...

  10. MySQL常用sql语句-----数据表的查询操作

    常用的sql语句如下,应对工作足以 1.查询指定字段 select c_id,c_age,c_name from t_student; select c_id as 编号,c_name as 姓名,c ...