zoukankan      html  css  js  c++  java
  • Docker 命令汇总

    Docker网络

    跨主机间的容器访问

    Ø  使用自定义网桥连接跨主机容器
    N/A,待写
    Ø  使用Ambassador实现跨主机容器
    N/A, 待写
    Ø  kubernetes
    N/A, 待写

    数据管理

    Ø  把物理机的目录挂载到容器里
    以交互模式启动一个容器,将物理机的/src/webapp挂载到/opt/webapp下
    #sudodocker run -t -i  -v /src/webapp:/opt/webappubuntu:14.04 /bin/bash
    参数解释
    -v 物理机目录:容器目录:读写权限 
     其中默认的权限为可读写,  ro:只读
    Ø  把物理机的文件挂载到容器里
    #sudo dockerrun -t -i  -v/src/webapp/test.html:/opt/webapp/test.html ubuntu:14.04 /bin/bash
     
    Ø  把容器挂载到另外一个容器
    #sudo docker create -v /dbdata --name dbdata ubuntu:14.04  //创建容器
    #sudodocker run -it --volumes-from dbdata ubuntu:12.04 /bin/bash //启动容器卷来自dbdata
    参数解释
    -volumn-from:卷来自哪个容器
     
    Ø  把容器挂载作为数据备份
    #sudo docker run --volumes-from dbdata -v $(pwd):/backup--name worker ubuntu tar cvf /backup/backup.tar /dbdata
    命令解释
    首先利用ubuntu镜像创建一个容器worker.使用—volumes-from dbdata参数来让容器挂载dbdata容器的数据卷;使用 –v $(pwd):/backup参数来挂载本机的当前目录到worker容器的/backup目录
    Woker容器启动后,执行tar命令将/dbdata压缩到/backup/backup.tar,这样就到物理机的当前目录了
    Ø  把容器挂载作为数据迁移
    #sudo docker run -v/dbdata --name dbdata2 ubuntu /bin/bash
    #sudo docker run--volumes-from dbdata2 -v $(pwd):/backup busybox tar  xvf /backup/.tar

    挂载到某个容器

    #sudo docker attach 容器ID

    显示运行容器的进程信息

    #sudo docker top 容器ID
     

    从容器内部拷贝文件到物理机

    #sudo docker cp cd0f61fb8256:/opt/a.html /

    列出容器里被改变的文件夹或文件

    #sudo docker diff 容器ID
    列表解释
    list列表会显示出三种事件,A 增加的,D 删除的,C 被改变的 

    Docker镜像相关命令

    镜像查看

    #sudo docker images  //在本机进行镜像查看
     
    #sudo docker inspect 镜像ID   //查看单个镜像的具体信息,以JSON格式返回

    获取镜像

    # sudo docker pull centos    //从DockerHub获取镜像
     

    查询镜像

    #sudo docker search 镜像名称  //从DockerHub按照镜像名称模拟查询镜像

    制作镜像

    ü  通过Dockerfile构建镜像
    #sudo cd /              //来到根“/”下
    #sudo mkdir redis       //创建redis文件夹
    #touch Dockerfile       //创建Dockerfile文件,文件内容见如下灰色部分
    FROM        ubuntu:14.04
    RUN         apt-get update && apt-getinstall -y redis-server
    EXPOSE      6379
    ENTRYPOINT  ["/usr/bin/redis-server"]
     
    #sudo docker build -t ningyougang/redis .     //通过dockerbuild制作镜像
    参数解释
    -t:tag名称
    .:当前Dockerfile的路径,在此处表示当前文件夹下
     
    ü  对运行着的容器commit镜像
    # sudo docker commit -m "Added json gem" -a"Kate Smith" 0b2616b0e5a8 ouruser/sinatra:v2
    参数解释
    -m:提交注释,如此处你加了什么特别的功能
    -a:作者
    0b2616b0e5a8:运行着的容器ID
    ouruser/sinatra:v2:给当前提交的镜像起名字并打标签
     
    备注:从上面可以看出,我们可以通过dockercommit来创建镜像,但是这种方式有点凌乱而且很难复制,更好的方式是通过Dockerfile来构建镜像,因为它步骤清晰并且容易复制

    给镜像打标签

    #sudo docker tag 5db5f8471261 ouruser/sinatra:devel  //当commit or build后,对镜像打标签
    参数解释
    5db5f8471261:此处的id为镜像ID
     
    备注:向私有仓库push镜像也要打标签

    推送镜像到公共库DockerHub

    #sudo docker push ouruser/sinatra
     
    下面介绍下DockerHub
    DockerHub是存放镜像的远程仓库,这里简单介绍下,如何使用
    Ø  注册
    首先在https://hub.docker.com/account/signup/完成帐号注册
    Ø  登录
    帐号注册成功后,在https://hub.docker.com/account/login/,即可登录
    除了通过登录页面,您也可以通过命令行,通过指令sudo docker login登录
    Ø  查询镜像
    点击“Browse Repos”(或输入https://registry.hub.docker.com/),进入镜像查询页面
    在此页面,您可以录入你感兴趣的镜像名称,进行模糊查询
    当然你也可以通过docker search  XXX进行镜像查询
    Ø  使用Docker帐号绑定GitHub帐号,进行自动化构建
    需要细化,没有来得及研究

    推送镜像到私有库

    ü  下载私有仓库镜像
    # docker pull registry           #从DockerHub下载registry镜像,里面含私库的运行环境,#当然你也可以自己下载源码包,自己安装
     
    ü  推送之前打tag
    # docker tag 704ca5ad68c5 192.168.202.213:5000/newtouch/activemq #打标签(必须先打标签,#在推送)
    该命令格式为:docker tag $ID $IP:$port/$name。push到私库上必须先打个tag,而tag名称的格式为:$IP:$port/$name, 个人感觉此处设计不太好或我自己没有找到更好的办法。如果设计良好应该可以直接push,不用打标签.
    ü  Push tag到镜像
    #docker push 192.168.202.213:5000/newtouch/activemq    #将此tag推送到私有库
     
    ü  Push到仓库后,远程查看
    #curl http://192.168.202.213:5000/v1/search             #push之后,远程查看
     
    ü  在另外一个docker客户端,从私有仓库下载
    #docker pull 192.168.202.213:5000/newtouch/activemq
     
    Docker tag报https错误问题解决:
    vi /etc/default/docker     #红色部分是添加的部分,重启docker服务
    # Docker Upstart and SysVinitconfiguration file
     
    # Customize location of Dockerbinary (especially for development testing).
    #DOCKER="/usr/local/bin/docker"
     
    # Use DOCKER_OPTS to modify thedaemon startup options.
    #DOCKER_OPTS="--dns8.8.8.8 --dns 8.8.4.4"
    DOCKER_OPTS="--insecure-registry 192.168.202.213:5000"
     
    # If you need Docker to use anHTTP proxy, it can also be specified here.
    #exporthttp_proxy="http://127.0.0.1:3128/"
     
    # This is also a handy place totweak where Docker's temporary files go.
    #exportTMPDIR="/mnt/bigdrive/docker-tmp"
     

    删除镜像

    #sudo docker rmi 镜像ID

    列出镜像的变更历史

    # docker history

    Docker运维相关命令

    在物理机下查看有哪些容器

    $ sudo docker ps       //查看有那些正在运行着的容器
     
    参数解释
    -l:最近的一个容器,有可能没有运行
    -a:查看所有的容器,包含运行和没有运行的容器

    实时打印所有容器的系统事件

    #sudo docker events
     
  • 相关阅读:
    GUI设计禁忌 之三 ——没有指示用户当前所在位置
    GUI设计禁忌 之九 ——不好的布局和窗口位置
    GUI设计禁忌 之十 ——字体过小
    GUI设计禁忌 之五 ——糟糕的搜索引擎
    Oracle对表的基本操作
    GUI设计禁忌 之八 ——引起误解的文字
    GUI设计禁忌 之四 ——将用户引入歧途
    Java基础:Object类中的equals与hashCode方法
    为应用程序池提供服务的进程关闭时间超过了限制
    asp.net 新手资源教程《Total Training Visual Studio 2005 教程》[Microsoft Visual Studio 2005 Productivity with .NET Framework 2.0]【ISO】
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7172206.html
Copyright © 2011-2022 走看看