• Docker常用命令


    安装Docker:

    ubuntu安装:curl -s https://get.docker.io/ubuntu/ | sudo sh

    镜像管理

    docker images:列出本地所有镜像

    docker search <IMAGE_ID/NAME>:查找image
    docker pull <IMAGE_ID>:下载image
    docker push <IMAGE_ID>:上传image
    docker rmi <IMAGE_ID>:删除image


    容器管理

    docker run -i -t <IMAGE_ID> /bin/bash:-i:标准输入给容器 -t:分配一个虚拟终端 /bin/bash:执行bash脚本

    -d:以守护进程方式运行(后台)

    -P:默认匹配docker容器的5000端口号到宿主机的49153 to 65535端口

    -p <HOT_PORT>:<CONTAINER_PORT>:指定端口号
    - -name: 指定容器的名称
    - -rm:退出时删除容器

    docker stop <CONTAINER_ID>:停止container
    docker start <CONTAINER_ID>:重新启动container

    docker ps - Lists containers.

    -l:显示最后启动的容器

    -a:同时显示停止的容器,默认只显示启动状态


    docker attach <CONTAINER_ID> 连接到启动的容器
    docker logs <CONTAINER_ID> : 输出容器日志

    -f:实时输出

    docker cp <CONTAINER_ID>:path hostpath:复制容器内的文件到宿主机目录上

    docker rm <CONTAINER_ID>:删除container

    docker rm `docker ps -a -q`:删除所有容器

    docker kill `docker ps -q`

    docker rmi `docker images -q -a`

    docker wait <CONTAINER_ID>:阻塞对容器的其他调用方法,直到容器停止后退出


    docker top <CONTAINER_ID>:查看容器中运行的进程

    docker diff <CONTAINER_ID>:查看容器中的变化

    docker inspect <CONTAINER_ID>:查看容器详细信息(输出为Json)

    -f:查找特定信息,如docker inspect -f '{{ .NetworkSettings.IPAddress }}'

    docker commit -m "comment" -a "author" <CONTAINER_ID> ouruser/imagename:tag

    docker extc -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果


    网络管理

    docker run -P:随机分配端口号
    docker run -p 5000:5000:绑定特定端口号(主机的所有网络接口的5000端口均绑定容器的5000端口)
    docker run -p 127.0.0.1:5000:5000:绑定主机的特定接口的端口号
    docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py:绑定udp端口号
    docker port <CONTAINER_ID> 5000:查看容器的5000端口对应本地机器的IP和端口号

    使用Docker Linking连接容器:

    Docker为源容器和接收容器创建一个安全的通道,容器之间不需要暴露端口,接收的容器可以访问源容器的数据

    docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS>


    数据管理

    Data Volumes:volume是在一个或多个容器里指定的特殊目录

    数据卷可以在容器间共享和重复使用
    可以直接修改容器卷的数据
    容器卷里的数据不会被包含到镜像中
    容器卷保持到没有容器再使用它

    可以在容器启动的时候添加-v参数指定容器卷,也可以在Dockerfile里用VOLUMN命令添加

    docker run -d -P --name web -v /webapp training/webapp python app.py

    也可以将容器卷挂载到宿主机目录或宿主机的文件上,<容器目录或文件>的内容会被替换为<宿主机目录或文件>的内容,默认容器对这个目录有可读写权限

    docker run -d -P --name web -v <宿主机目录>:<容器目录> training/webapp python app.py

    可以通过指定ro,将权限改为只读

    docker run -d -P --name web -v <宿主机目录>:<容器目录>:ro training/webapp python app.py

    在一个容器创建容器卷后,其他容器便可以通过--volumes-from共享这个容器卷数据,如下:

    docker run -d -v /dbdata --name db1 training/postgres echo Data-only container for postgres

    首先启动了一个容器,并为这个容器增加一个数据卷/dbdata,然后启动另一个容器,共享这个数据卷

    docker run -d --volumes-from db1 --name db2 training/postgres

    此时db2使用了db1的容器卷,当容器db1被删除时,容器卷也不会被删除,只有所有容器不再使用此容器卷时,才会被删除

    docker rm -v:删除容器卷

    除了共享数据外,容器卷另一个作用是用来备份、恢复和迁移数据

    docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata

    启动一个容器数据卷使用db1容器的数据卷,同时新建立一个数据卷指向宿主机目录/home/backup,将/dbdata目录的数据压缩为/backup/backup.tar

    docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

    docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar

    启动一个容器,同时把backup.tar的内容解压到容器的backup


    仓库管理

    docker login:登录
      

    上传文件和下载

    [root@localhost ldap]# docker cp /opt/ldap/ldap.txt  drupal_container:/opt/
    [root@localhost ldap]# docker cp drupal_container:/opt/test.txt  /opt/ldap/
  • 相关阅读:
    【原创 Hadoop&Spark 动手实践 6】Spark 编程实例与案例演示
    【原创 Hadoop&Spark 动手实践 7】Spark 计算引擎剖析与动手实践
    【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell
    【原创 Hadoop&Spark 动手实践 4】Hadoop2.7.3 YARN原理与动手实践
    【转载】MapReduce编程 Intellij Idea配置MapReduce编程环境
    【转载】Hadoop 2.7.3 和Hbase 1.2.4安装教程
    【原创 Hadoop&Spark 动手实践 3】Hadoop2.7.3 MapReduce理论与动手实践
    【转载】systemctl命令完全指南
    【转载 Hadoop&Spark 动手实践 2】Hadoop2.7.3 HDFS理论与动手实践
    【转载】Hadoop官方文档翻译——HDFS Architecture 2.7.3
  • 原文地址:https://www.cnblogs.com/river2005/p/8283723.html
Copyright © 2020-2023  润新知