• docker安装使用


     介绍

      Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(来自百度百科)

    官方社区:http://docs.daocloud.io/

    主页:https://www.daocloud.io/

    注意:docker目前只支持64位系统

    一. 安装

    安装最新的 Docker 版本

    修改/etc/apt/sources.list文件,添加源:

    deb https://get.docker.io/ubuntu docker main

    更新软件列表

    sudo apt-get update
    sudo apt-get install docker-engine

    自动化安装

    使用脚本自动安装

    Docker 官方为了简化安装流程,提供了一套安装脚本,Ubuntu 和 Debian 系统可以使用这套脚本安装:

    curl -sSL https://get.docker.com/ | sh

    在国内使用这个脚本可能会出现因为墙导致的某些下载出现错误的情况。
    国内的一些云服务商提供了这个脚本的修改版本,使其使用国内的 Docker 软件源镜像安装

    阿里云的安装脚本

    curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

    DaoCloud 的安装脚本

    curl -sSL https://get.daocloud.io/docker | sh

    安装成功后,我们启用并启动服务

    sudo systemctl enable docker  #在服务器上设置设置开机启动
    sudo systemctl start docker   #启动docker服务
    sudo docker info
    ps -aux | grep docker  #查看是否启动成功

     

     

     二. 简单使用

    以安装kali为例:

    搜索Docker上的kali镜像

    sudo docker search kali      

    获取其中的一个kali镜像

    sudo docker pull kalilinux/kali-linux-docker  

    创建一个容器

    sudo docker run -t -d kalilinux/kali-linux-docker    

    参数解释

    -i   保证容器中 STDIN 是开启的
    -t   标志要为新创建的容器分配一个伪 tty 终端,这样我们就能在新创建容器中使用 交互式 shell ;

      修改容器名称,这里我改成dockali

    docker rename jovial_curie dockali       

     进入容器shell

    docker exec -it dockali bash      

    然后我们就可以安装我们需要的东西啦,比如msf。。。

    在容器中安装程序: docker run kali apt-get install ****
    直接进入系统直接安装所要的程序吧。
    进入容器: docker run -i -t dockali
    更新一下: apt-get update
    更新完毕后kali中的所有软件只要想用的 都可以自己安装下面我们安装msf
    apt-get install metasploit-framework

    我们也可以部署在VPS上,可以有效避免我们装许多依赖~

    三. 其他使用

    Metasploit

    sudo docker pull remnux/metasploit 
    sudo docker run --rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasp

    参数解释

    -v    将本机中的目录映射到容器内相关目录上(冒号":"前面的目录是宿主机目录,后面的目录是容器内目录)
         ~/.msf4目录保存Metasploit框架的配置文件。外部机器上的“/tmp/msf”目录用于保存其他数据,比如你从目标系统获取的相关信息。
    -p    将本机上的输入流端口映射到容器内的端口。上面的例子使用TCP端口443接收从反弹shell进入的HTTPS链接。

    容器被配置为当你登录后自动更新Metasploit的模块。如果你需要增加自己的模块,可以将它们放在主机的~/.msf4目录中

    容器内部默认使用/tmp/data目录,所以结果文件会存放在那,比如使用msfvenom生成的payload,映射之后我们可以在本机上的/tmp/msf目录中查找

    容器包含了tmux多路终端工具。它可以让你在一个终端窗口内同时登陆多个“虚拟”窗口。容器修改了工具默认的Ctrl+b快捷键,将它改为Ctrl+a。

    登陆Metasploit框架容器后,输入“tmux”可以使用该工具了。你会在该工具多个“虚拟”窗口中得到一个shell。

    想要开启另外一个,按Ctrl+a然后按“c”。去切换窗口,按Ctrl+a然后按窗口编码(例如,Crl+a然后按“0”或“1”) 

    docker漏洞利用

    http://www.cnblogs.com/hanyifeng/p/5526799.html

    http://www.91ri.org/15837.html

    docker命令

    查看镜像: docker images [NAME]  
    删除镜像:docker rmi IMAGE    
    列出容器: docker ps -a
    启动容器: docker start xxx
    删除容器:docker rm CONTAINER ID
    查看容器id: docker ps -a
    查看所有容器id:docker ps -a -q
    查看最近生成的容器:docker ps -l
    查看正在运行的容器:docker ps
    停止正在运行的容器:docker stop CONTAINERID
    启动一个退出的容器:docker start CONTAINERID
    attach到运行中的容器: docker attach CONTAINERID   
    
    启动所有的容器: docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
    关闭所有的容器: docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
    删除所有的容器: docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
    删除所有的镜像: docker rmi $(docker images | awk '{print $3}' |tail -n +2)
    
                                  
    docker使用完成后并不用保存。
    容器中执行bash并进入交互式shell: docker exec -it xxx /bin/bash
    在容器中,按ctrl + p再按ctrl + q退出容器,但不结束bash
    下次执行: docker attach xxx           即可再次进入此bash
    只有当你觉得需要保存成镜像的时候才执行commit

    镜像导出与导入

    导入容器快照为镜像(docker import)

    容器在本地:
      cat centos.tar | docker import - registry.intra.weibo.com/yushuang3/centos:v2.0

    容器在网络上:   docker import http://example.com/exampleimage.tgz registry.intra.weibo.com/yushuang3/centos:v2.0

    注意:
    用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,
    也可以使用 docker import 来导入一个容器快照到本地镜像库。
    这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),
    而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

    使用ssh进入docker容器镜像目录时,如果开启多个容器,会不方便,可以试试nsenter

    补充:

    使用DaoCloud管理docker容器:https://dashboard.daocloud.io/

    用国内的镜像来加速下载:https://www.daocloud.io/mirror#accelerator-doc 

    docker给运行中的容器添加映射端口

    方法1
    1、获得容器IP
    将container_name 换成实际环境中的容器名

    docker inspect `container_name` | grep IPAddress

    2、 iptable转发端口
    将容器的8000端口映射到Docker主机的8001端口

    iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000

    方法2
    1.提交一个运行中的容器为镜像

    docker commit containerid foo/live

    2.运行镜像并添加端口

    docker run -d -p 8000:80 foo/live /bin/bash

      

  • 相关阅读:
    Blend3中创建的Silverlight程序在设计模式下无法显示图片的解决办法
    创建Silverlight Bussiness Application时报错的解决
    .NET 2.0 字符串比较
    ASP.NET 客户端缓存
    AjaxPro部署成功
    遭遇反序列化异常:"在分析完成之前就遇到流结尾"
    正则表达式
    哈哈,终于申请获得批准了!
    ClientScript.RegisterClientScriptInclude注册脚本
    今天经过一场深有体会的谈话终于决定了我2012的方向
  • 原文地址:https://www.cnblogs.com/ssooking/p/6128337.html
Copyright © 2020-2023  润新知