• 基本概念定义

    • 基本组成

      • 客户端/守护进程

        • 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. KafkaStream简介

    Kafka Streams 1 概述 Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统.Kafka Stream基于一 ...

  2. Android9.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)

    文章较长建议先收藏再看 拆解步骤 1.app 强制横屏显示,无视 android:screenOrientation="portrait" 属性 2.屏幕触摸坐标修改为横屏 3.开 ...

  3. Java工程师学习指南(入门篇)

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  4. Selenium+PhantomJS使用时报错原因

    运行下面代码:'''PhantomJS运用''' from selenium import webdriverimport time # 通过keys模拟键盘from selenium.webdriv ...

  5. 代码审计-Thinkphp3框架EXP表达式SQL注入

    最近看java框架源码也是看的有点头疼,好多还要复习熟悉 还有好多事没做...慢慢熬. 网上好像还没有特别详细的分析 我来误人子弟吧. 0x01 tp3 中的exp表达式 查询表达式的使用格式: $m ...

  6. 实验吧之【拐弯抹角】(url伪静态)

    题目地址:http://ctf5.shiyanbar.com/indirection/ 打开后给了源码 <?php // code by SEC@USTC echo '<html>& ...

  7. NodeJS操作MongoDB数据库

    一.node.js对于mongodb的基本操作 1.数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档.如D:\mongo,接下去在cmd当中键入命令-> mon ...

  8. prototype与 _proto__的关系

    prototype与 __ proto__ 都是在这个过程中催生的产物,我们一会儿马上讨论,在这之...做对象即可,那javascript种究竟是通过什么来明确继承关系的呢. 一.构造函数: 构造函数 ...

  9. Cocos2d-x 学习笔记(11.1) MoveBy MoveTo

    1. MoveBy MoveTo 两方法都是对node的平移,MoveBy是相对当前位置的移动.MoveTo是By的子类,是移动到世界坐标位置. 1.1 成员变量和create方法 MoveBy的主要 ...

  10. 就改了get,却不让我set?——Java内省机制的神奇行为举止一例

    [相关类库]org.apache.commons.beanutils.BeanUtils,提供对Java反射和自省API的包装,其中底层使用到了Java的内省方法.[内省的一般应用形式]通过类Intr ...