常见 MQ 的比较 - Kafka、RocketMQ、RabbitMQ的优劣势比较 GFS 论文学习和 HDFS 实现的比较 Docker技术入门与实战 - 使用 dockerfile定制镜像 I love log 读书笔记 flink 入门程序-wordcount flink 配置项介绍 在 Mac 上搭建 Flink 的开发环境 lambda 架构问题的阅读笔记 IDEA常用插件 Mybatis源码分析(1) - Mybatis关键类 Mybatis源码分析(1) - Mybatis包目录简介 tair 1:tair学习 dataflow论文阅读笔记 Polysh的安装使用 SnappyData排序函数比较 Squirrel-sql客户端连接SnappyData手册 在虚拟机里显示Hello World spark学习博客推荐 SnappyData学习博客和官网文章 Docker常用命令 MyBatis支持的OGNL语法 mysql性能优化 mysql性能优化-优化Sql语句 java各版本新特性 mac上命令行操作 explain输出格式 从文件中读取zk配置——ZooKeeper编程技能(1) git进阶经验-从项目中删除移除的目录 Mongodb 学习之shell命令操作(3) mysql命令 git进阶经验-从多模块项目中分理子模块 从零学hadoop-搭建基础(单点)的Hdfs环境 ZooKeeper集群操作脚本 Vue安装使用 2 初学JVM之问答式记住类加载机制 2 初学JVM之问答式记住虚拟机性能监控与故障处理工具 2 初学JVM之问答式记住垃圾收集器 log4j2 按天生成日志文件 1 初学JVM之问答式记住java自动内存管理 MapReduce学习心得之MapReduce初识 log4j2 日志发送到kafka配置实战 log4j2 日志配置实战 Mongodb 学习之shell命令操作(二) Mongodb 学习之linux版本安装(一) Dubbo的初级使用 ServiceLoader内部实现分析 ServiceLoader 初级应用 log4j日志发送邮件配置实战 红黑树笔记 IDEA首次使用之前的配置 java源码学习之Enum java源码学习之String 自定义Spring tag标签 编写一键发布脚本 记一次Spring Scheduler莫名不执行的一次堆栈分析 kafka的基本操作 nginx 5:Nginx内部变量 nginx 4:Nginx日志管理 提高hadoop配置效率的shell脚本 Hive编程指南之一 Hive的安装 Ambari服务器安装 Ambari服务器管理集群 HBase分布式安装 windows下Eclipse远程调试运行MR程序 基于MapReduce新的API的编程Demo-wordCount window下Eclipse远程只读HDFS上的文件 YARN上节点标签 编写第一个MapReduce的wordcount程序 NodeManager的重启 搭建JStorm集群 YARN上的web应用代理 YARN上的ResourceManager的高可用方案 配置vmware中的虚拟机使用宿主机的共享网络 YARN架构简述 HDFS 架构 Spring的统一异常处理机制 Tomcat 配置服务 HDFS的viewfs指南 HDFS的Federation之路 HDFS基于QJM的HA之路 nginx 3:Nginx反向代理 mybatis操作主体流程 1.正则表达式学习-基础篇 log4j日志配置详解 mysql的时间函数 nginx 2:Nginx模块配置理论及实战 HashMap相关解析和测试文章 工作一年后的面试 用私有构造器或枚举类型强化Singleton属性 java中比较重要的图 mybatis处理枚举类 mybatis集成进spring Spring比较重要的几个截图 21.hadoop-2.7.2官网文档翻译-使用NFS的HDFS高可用性 20.hadoop-2.7.2官网文档翻译-使用仲裁日志管理器的HDFS高可用性 markdown在jekyll中支持的一些操作 Spring项目中配置sl4j和log4j的日志配置 19.hadoop-2.7.2官网文档翻译-HDFS命令指南 Spring的profile机制介绍 mybatis-generator反向生成 18.hadoop-2.7.2官网文档翻译-HDFS用户指南 17.hadoop-2.7.2官网文档翻译-实现Hadoop中Dapper-like追踪 16.hadoop-2.7.2官网文档翻译-Hadoop的KMS(key 管理服务器)-文档集 15.hadoop-2.7.2官网文档翻译-Hadoop的http web认证 14.hadoop-2.7.2官网文档翻译-服务级别的授权指南 13.hadoop-2.7.2官网文档翻译-安全模式中的Hadoop 09.hadoop-2.7.2官网文档翻译-Hadoop命令行微型集群 12.hadoop-2.7.2官网文档翻译-机架感知 11.hadoop-2.7.2官网文档翻译-代理用户-超级用户对其他用户的代表 10.hadoop-2.7.2官网文档翻译-原生库指南 08.hadoop-2.7.2官网文档翻译-文件系统规范 07.hadoop-2.7.2官网文档翻译-Hadoop接口类别 (转)浅析 Decorator 模式,兼谈 CDI Decorator 注解 06.hadoop-2.7.2官网文档翻译-Hadoop的兼容性 05.hadoop-2.7.2官网文档翻译-文件系统命令 04.hadoop-2.7.2官网文档翻译-Hadoop命令指南 03.hadoop-2.7.2官网文档翻译-集群安装 02.hadoop-2.7.2官网文档翻译-单节点集群安装 01.hadoop-2.7.2官网文档翻译-概述 Http 协议相应状态码大全及常用状态码 IDEA快捷键 JDBC Type与Java Type redis 12:redis 操作集合 mybatis-generator错误集合 redis 11:redis 错误集合 nginx 1:nginx的安装 redis 10:redis cluster命令操作 redis 9:redis实例集群安装 java设计模式 hadoop集群学习笔记(1) Apache Shiro 简介 vim编辑神器的进阶命令 Eclipse配置 Eclipse快捷键 Linux 测试题 Linux脚本学习(1) Linux启动简要过程 Centos7上安装Mysql hadoop集群学习笔记(1) (转)分布式发布订阅消息系统 Kafka 架构设计 maven 命令 Kafka集群安装 Kafka初步使用 redis 8:redis server 和 scripting命令操作 redis 7:redis transaction 和 connection命令操作 redis 6:redis hash 命令操作 redis 5:redis sorted_set 命令操作 搭建本地Jekyll+Markdown+Github的开发环境 Spring源码阅读笔记(2) redis 4:redis set命令操作 Spring添加任务调度配置 redis 3:Redis list命令操作 redis 2:redis 一般命令操作 redis 1:redis单机安装笔记 redis 0:redis配置属性描述 Spring源码阅读笔记(1) spark 错误集锦 spark集群安装 Linux 基本命令操作 Hadoop错误信息处理 Hadoop代码拾忆 从零开始搭建spring-springmvc-mybatis-mysql和dubbo项目 java知识点札记 java排错 Google Java Style 中文版 git进阶经验 github使用经验 MongoDB用户角色授权与AUTH启用 MongoDB 命令 MongoDB 特定规范 Spring MVC实现跳转的几种方式 史上最全最强SpringMVC详细示例实战教程 Spring 零星笔记 js中(function(){…})()立即执行函数写法理解 如何解决跨域问题 创建ajax简单过程 前端定位 设置MYSQL允许通过IP访问 mybatis异常 :元素内容必须由格式正确的字符数据或标记组成 如何为 WordPress 绑定多个域名的方法s WordPress工作原理之程序文件执行顺序(传说中的架构源码分析) Spring源码导入Eclipse中 基于PHPnow搭建Eclipse开发环境 解决wordpress首页文章内容截断处理的几种方法 ZooKeeper理论知识 ZooKeeper集群安装配置 Git常用命令速查表 Linux 4:磁盘与文件系统管理 Linux 3:文件与目录管理 Linux 2:文件权限与目录配置 Markdown输入LaTeX数学公式
从零学hadoop-搭建基础(单点)的Hdfs环境 MapReduce学习心得之MapReduce初识 Ambari服务器安装 Ambari服务器管理集群 windows下Eclipse远程调试运行MR程序 基于MapReduce新的API的编程Demo-wordCount window下Eclipse远程只读HDFS上的文件 YARN上节点标签 编写第一个MapReduce的wordcount程序 NodeManager的重启 YARN上的web应用代理 YARN上的ResourceManager的高可用方案 YARN架构简述 HDFS 架构 HDFS的viewfs指南 HDFS的Federation之路 HDFS基于QJM的HA之路 21.hadoop-2.7.2官网文档翻译-使用NFS的HDFS高可用性 20.hadoop-2.7.2官网文档翻译-使用仲裁日志管理器的HDFS高可用性 19.hadoop-2.7.2官网文档翻译-HDFS命令指南 18.hadoop-2.7.2官网文档翻译-HDFS用户指南 17.hadoop-2.7.2官网文档翻译-实现Hadoop中Dapper-like追踪 16.hadoop-2.7.2官网文档翻译-Hadoop的KMS(key 管理服务器)-文档集 15.hadoop-2.7.2官网文档翻译-Hadoop的http web认证 14.hadoop-2.7.2官网文档翻译-服务级别的授权指南 13.hadoop-2.7.2官网文档翻译-安全模式中的Hadoop 09.hadoop-2.7.2官网文档翻译-Hadoop命令行微型集群 12.hadoop-2.7.2官网文档翻译-机架感知 11.hadoop-2.7.2官网文档翻译-代理用户-超级用户对其他用户的代表 10.hadoop-2.7.2官网文档翻译-原生库指南 08.hadoop-2.7.2官网文档翻译-文件系统规范 07.hadoop-2.7.2官网文档翻译-Hadoop接口类别 06.hadoop-2.7.2官网文档翻译-Hadoop的兼容性 05.hadoop-2.7.2官网文档翻译-文件系统命令 04.hadoop-2.7.2官网文档翻译-Hadoop命令指南 03.hadoop-2.7.2官网文档翻译-集群安装 02.hadoop-2.7.2官网文档翻译-单节点集群安装 01.hadoop-2.7.2官网文档翻译-概述 hadoop集群学习笔记(1) hadoop集群学习笔记(1) Hadoop错误信息处理 Hadoop代码拾忆

Docker常用命令

2017年11月21日
摘要:介绍Docker常用命令

个人新的博客地址:https://segmentfault.com/blog/followtry

Docker检查

查看信息

$docker --version #查看版本
$docker-compose --version #查看版本
$docker-machine --version #查看版本
$docker version #查看client和server端版本,并可以查看是否开启体验功能
$docker info #查看 docker 的详细信息

检查

$docker ps # 查看当前正在运行的image实例
$docker container ls # 查看当前正在运行的 image 实例,与 docker ps 相同
$docker ps -a #查看所有镜像实例 同 docker container ls -a
$docker run hello-world #验证docker是否在运行中
$docker inspect <task or container>   检查任务或容器

镜像操作

$docker search <image-name> $搜索仓库中的指定镜像
$docker pull <username>/<repository> #获取镜像。如:$docker pull followtry/demo
$docker run username/repository:tag #创建并运行仓库的镜像,相当于 `docker create`和`docker start`两种操作
$docker run -i -t -h test-docker --rm --name test registry-hulk.sankuai.com/sankuai/centos:6  /bin/bash #以shell 交互方式运行容器,并host 命名为 test-docker,容器命名为 test,使用完成后退出即刻删除
$docker images #列出所有镜像
$docker image ls -a  显示机器上所有的镜像
$docker history <image-name>  #查看镜像的 commit 历史
$docker build -t <image-name> . #使用当前目录下的Dockerfile构建镜像
$docker commit <new-image-name> # 使用当前容器构建新的镜像。不要使用该命令定制镜像,会导致镜像特别臃肿
$docker image rm <image id>      删除指定的镜像
$docker image rm $(docker image ls -a -q)  删除所有的镜像
$docker rmi [image-id/image-name] #删除指定的镜像,如docker rmi nginx
$docker tag <image> <username>/<repository>:<tag> #为自定义的镜像打上tag。如:$docker tag hellopython followtry/demo:latest
$docker push <username>/<repository>:<tag> #将自定义的镜像发布到仓库。如:docker push followtry/demo:latest
    上传后访问地址:https://cloud.docker.com/swarm/followtry/repository/docker/followtry/demo/general

$docker create <image id> # 创建一个镜像的容器,未运行状态

容器操作

$docker container ls #列出所有运行中的容器
$docker container ls -a #列出所有容器,包括未运行的
docker container ls -q     #只列出运行的容器的id集合
$docker container stop <hash>  # 优雅停用指定的容器
$docker container kill <hash>  #强制关闭指定的容器
$docker container rm <hash>    #删除指定的容器
$docker container rm $(docker container ls -a -q)  #删除所有的容器
$docker run -d -p 8080:80 --name webserver --restart=always nginx # 运行nginx镜像实例,-d:后台,-p:绑定端口8080到docker的80。--name 指定容器名称为webserver,--restart: 自动重启容器
$docker stop <containerid/container-name> #停止容器webserver
$docker kill <containerid/container-name> # 强制停止容器webserver
$docker start <containerid/container-name> #启动容器webserver
$docker restart <containerid/container-name> #重启容器webserver
$docker port <containerid/container-name> #查看指定容器的端口映射
$docker logs -f -t <containerid/container-name> #查看指定容器的操作日志信息并跟踪最新的日志。-t: 打印操作时间
$docker top <containerid/container-name>  #查看容器的进程
$docker diff <containerid/container-name>  #查看对容器的改动情况
$docker inspect <containerid/container-name> #检查容器的详细底层信息
$docker rm <containerid/container-name> #删除容器,只能删除已停止运行的容器
$docker attach <containerid/container-name> #将操作附着在刚启动的容器上
$docker top <containerid/container-name> # 查看容器内运行的进程
$docker exec -i -t  <containerid/container-name> /bin/bash #在已经后台启动的容器上打开一个模拟的交互式的shell 终端

dockerfile 指令

基于 dockerfile 使用 docker build 指定构建新的镜像

  1. FROM 指定一个已经存在的基础镜像
  2. MAINTAINER 镜像作者及作者的邮件地址
  3. RUN 在当前镜像产生的容器中运行指定的命令
  4. RUN
  5. RUN
  6. EXPOSE 告诉 docker 该容器内的应用程序将会使用容器的指定端口。但是docker 运行新容器时不会自动打开该端口。需要造运行 docker run 时指定。

Docker操作

$/Applications/Docker.app/Contents/MacOS/Docker --uninstall #docker卸载

用户和组

$docker login #登录

service指令

$docker service ls  #列出与应用关联的所有运行的service
$docker service ps <service>  #列出和应用关联的所有任务

stack指令

$docker stack ls  #列出stack或app列表
$docker stack deploy -c <composefile> <appname>  # 运行指定的compose文件
$docker stack rm <appname>  #删除一个或多个stack
$docker stack services <stack1>#列出stack1中的服务

swarm指令

$docker swarm ca  #显示root的ca
$docker swarm init #swarm初始化
$docker swarm join --token SWMTKN-1-1qazipp4hbndidnfzsm8psks33tdgvvcgn0ids6uv41u68w9f8-aq1lw7di2g4wx6buypra1j6qz 192.168.65.2:2377 #执行该命令,将当前节点添加到swarm中管理
$docker swarm join-token [OPTIONS] (worker|manager) #管理允许加入的token
$docker swarm leave --force  #从管理器中强制移除单个swarm节点
$docker swarm unlock-key #swarm集群的解锁key
$docker swarm unlock #解锁集群,key=SWMKEY-1-8jKcZ7SJb2+aHibYuJ1RevmuEAtbx8q0LY+crOx+QRU
$docker swarm update   #更新swarm,内有自动lock,cert过期周期,分发心跳周期,历史任务限制等功能

node指令

$docker node demote <NODEID/HOSTNAME> #对NODEID进行降级
$docker node inspect <NODEID/HOSTNAME> #节点NODEID的详细信息
$docker node ls #列出节点列表
$docker node promote node | ... #提升一到多个节点为swarm的管理者
$docker node ps #列出节点上正在运行的任务,默认是当前节点
$docker node rm node | ... #swarm中移除一个或多个节点
$docker node update <NODEID/HOSTNAME> #更新指定节点