zoukankan      html  css  js  c++  java
  • docker(2)

    docker三大核心组件的概念

    1镜像:

     Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了 Apache 应用程序(或用户需要的其他软件)。可以把它称为一个 Apache镜像。
    
      镜像是创建Docker 容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的镜像直接使用
    View Code

    2.容器

    Docker 容器类似于一个轻量级的沙箱,Docker 利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不相见的。
    可以把容器看做是一个简易版的Linux系统环境
    View Code

    3.仓库

    Docker 仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式。目前最大的公开仓库是Docker Hub, 存放了数量庞大的镜像供用户下载。国内也有阿里云等
    View Code

    docker的初步安装与使用

    要求:可以使用uname -a,查看

    Docker 运行在CentOS 7 上,要求系统为64位、系统内核为3.10以上
    Docker 运行在CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为2.6.32-431 或者更高版本。
    View Code

    安装:

    yum -y install docker

    systemctl start docker

    systemctl status docker

    systemctl enable docker

    查看版本信息:

    docker version

    基础镜像命令的使用:

    1.搜索镜像:

    docker search centos

    docker search --automated=ture -s 3 nginx

    解释:查找评价为三星+的nginx的镜像,仅显示自动创建的镜像

    2.获取镜像docker pull

    docker pull centos

    3.查看镜像:

    docker images或者docker images ls

    4.删除镜像:

    docker rmi imagesID或者唯一标示的名字

    5.导出镜像

    docker save centos > /tmp/docker_centos.tar

    或者使用:docker image save centos > /tmp/docker_centos.tar

    6.导入镜像:

    docker image load < /tmp/docker_centos.tar

    7.给镜像打标签

    docker image tag centos centos7.3

    docker容器管理

    启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一种是将在终止状态(stopped)的容器重新启动

    创建镜像

    docker create -it centos /bin/bash

    docker ps -a

    docker start id

    docker attach id【根据已经启动的容器的id,进入容器中】

    退出使用:exit

    启动一个bash终端,允许用户进行交互
    
    复制代码
    [root@server ~]# docker run --name mydocker -t -i centos /bin/bash
    [root@8bad1a6db7b2 /]# pwd
    /
    [root@8bad1a6db7b2 /]# ls
    anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    
    --name: 给容器定义一个名称
    -t:让Docker分配一个伪终端并绑定到容器的标准输入上
    -i:让容器的标准输入保持打开
    /bin/bash:执行一个命令
    View Code
    docker run 的参数
    -i, --interactive 交互式 -t, --tty 分配一个伪终端 -d, --detach 运行容器到后台 -a, --attach list 附加到运行的容器

    当利用docker run 来创建容器时,Docker在后台运行的标准操作包括

    1检查本地是否存在指定的镜像,不存在就从公有仓库下载;
    2利用镜像创建一个容器,并启动该容器;
    3分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
    4从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中;
    5从网桥的地址池配置一个 IP 地址给容器;
    6执行用户指定的应用程序;
    7执行完毕后容器被自动终止。
    View Code

    守护进程运行(后台运行)

    更多的时候,需要让Docker容器在后台运行,而不是直接把执行命令的结果输出在当前宿主机下。此时可以加 -d 参数来实现

    [root@server ~]# docker run -d centos /bin/bash -c "while true; do echo hello world; sleep 1; done" 
    0ca1770a1fd0b21ae05f2f6bd9befbb9eef55576ab0a0b51fc6dc7e427128174
    [root@server ~]# docker ps  #查看正在运行的docker容器
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    0ca1770a1fd0        centos              "/bin/bash -c 'while…"   27 seconds ago      Up 25 seconds                           ecstatic_wu
    8bad1a6db7b2        centos              "/bin/bash"              18 minutes ago      Up 10 minutes                           mydocker
    [root@server ~]# docker logs 0ca1770a1fd0  #获取容器输出信息,通过docker logs命令
    hello world
    hello world
    hello world
    View Code

    但是使用attach命令有时候并不方便,当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示,当某个窗口因命令阻塞,其他窗口也无法执行操作了。且通过exit退出后容器就自动终止了。这时可以考虑使用nsenter

    导入,导出,删除容器

    [root@server ~]# docker export mydocker > centos.tar  #导出一个容器,也可以使用docker export -o centos.tar mydocker。 -o 指定导出的名字
    [root@server ~]# ll centos.tar 
    -rw-r--r-- 1 root root 209473024 1月   5 17:56 centos.tar
    导入容器
    导出的文件又可以使用 docker import 命令导入变成镜像,例如
    [root@server ~]# cat centos.tar | docker import - test/centos:7.3
    
    [root@server ~]# docker rm a661c9dd4470   #删除已经停止的容器
    [root@server ~]# docker rm $(docker ps -a -q)   # 获取全部容器的ID,进行删除
    View Code
  • 相关阅读:
    【流量劫持】SSLStrip 终极版 —— location 瞒天过海
    【流量劫持】沉默中的狂怒 —— Cookie 大喷发
    【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
    Web 前端攻防(2014版)
    流量劫持 —— 浮层登录框的隐患
    流量劫持能有多大危害?
    流量劫持是如何产生的?
    XSS 前端防火墙 —— 整装待发
    XSS 前端防火墙 —— 天衣无缝的防护
    XSS 前端防火墙 —— 无懈可击的钩子
  • 原文地址:https://www.cnblogs.com/topass123/p/12566934.html
Copyright © 2011-2022 走看看