C++ 全栈知识体系C++ 全栈知识体系
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
  • 流水线构建 - CI/CD

    • CI/CD - 基础
    • CI/CD - 部署
    • CI/CD - 本地仓库CI流程
    • CI/CD - 远程仓库CI流程
  • 知识点 - Linux

    • Linux - 常用命令大全
    • Linux - 信号
    • Linux - 线程
    • Linux - 进程
    • Linux - 线程和进程同步
    • Linux - shell命令使用技巧
    • Linux - 使echo命令输出结果带颜色
  • 网站 - Nginx

    • Nginx - 学习笔记
    • Nginx - 部署静态页面网站
    • Nginx - 反向代理服务器
    • Nginx - 错误日志配置及信息详解
    • Nginx - 图片服务器配置
  • 容器化 - Docker

    • Docker - 容器技术Docker、Compose、k8s的演变
    • Docker - Dockerfile学习
    • Docker - 命令大全
    • Docker - Docker-compose学习
  • 容器编排 - Kubernetes

    • Kubernetes - 概念
    • Kubernetes - 基础应用
    • Kubernetes - 命令
    • Kubernetes - 检测探针
  • 服务网格 - Service Mesh Istio

    • Istio - 基础
    • Istio - 安装
    • Istio - 使用
    • Istio - 架构解析
    • Istio - 可观察性
    • Istio - 通过阿里云ecs部署k8s集群
  • 常用快捷键 - Shortcut

    • Shortcut - Linux
    • Shortcut - Vim
    • Shortcut - VsCode
    • Shortcut - IDEA
  • 工具使用 - Tools

    • Tools - cmake使用指南
    • Tools - cmake install详解
    • Tools - curl使用方法
    • Tools - docker使用方法
    • Tools - GCC警告选项
    • Tools - GCC和动静态库
    • Tools - gdb调试方法
    • Tools - nginx安装以及使用
    • Tools - VsCode插件

Docker - 命令大全

docker 常用的命令以及示例。

    参考资料

    • 菜鸟教程docker

    基本命令

    `uname -r` :查看内核
    `systemctl start docker`: 启动docker镜像
    `docker version` :查看docker版本
    `docker info`:查看docker详细信息
    `docker --help`:查看docker命令
    

    镜像命令

    docker images                                  # 查看镜像列表
    ​docker pull 镜像名称或ID                       # 拉取镜像到本地
    ​docker push keke/unbantu-test:lastest          # 上传镜像到仓库
    ​docker save -o 导出的路径 镜像ID               # 保存到本地镜像
    ​docker load -i 镜像路径                        # 加载本地镜像
    ​docker tag 镜像ID 新镜像名称:版本             # 修改镜像名称
    docker rmi 镜像名称或ID                      ​ # 删除一个或者多个镜像
    
    # 通过容器创建镜像:从已经创建的容器中更新镜像,并且提交这个镜像 使用 Dockerfile 指令来创建一个新的镜像 下面通过已存在的容器创建一个新的镜像。
    docker commit -m="First Image" -a="keke" 7a15f99695c0 keke/unbantu:17.10.0
    
    上面命令参数说明:
    -m 提交的描述信息
    -a 指定镜像作者
    7a15f99695c0 :记住这个是容器id,不是镜像id
    keke/unbantu:17.10.0: 创建的目标镜像名
    

    容器命令

    创建一个新的容器并运行一个命令

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    OPTIONS说明:

    • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    • -d: 后台运行容器,并返回容器ID;
    • -i: 以交互模式运行容器,通常与 -t 同时使用;
    • -P: 随机端口映射,容器内部端口随机映射到主机的端口
    • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    • --name="nginx-lb": 为容器指定一个名称;
    • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    • -h "mars": 指定容器的hostname;
    • -e username="ritchie": 设置环境变量;
    • --env-file=[]: 从指定文件读入环境变量;
    • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    • -m :设置容器使用内存最大值;
    • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    • --link=[]: 添加链接到另一个容器;
    • --expose=[]: 开放一个端口或一组端口;
    • --volume , -v: 绑定一个卷
    docker run 镜像ID|镜像名称[:tag]                            # 启动容器
    docker run 镜像ID yum install -y -name                      # 在容器中安装新的程序:在执行 yum 命令的时候,要带上-y参数
    docker run 镜像ID echo "hello wrold"                        # 在容器中运行"echo"命令,输出"hello world"
    docker run -it 镜像ID /bin/bash                             # 交互式进入容器中
    

    列出所有容器的ID:

    docker ps -qa        
    

    OPTIONS说明:

    • -a :显示所有的容器,包括未运行的。
    • -f :根据条件过滤显示的内容。
    • --format :指定返回值的模板文件。
    • -l :显示最近创建的容器。
    • -n :列出最近创建的n个容器。
    • --no-trunc :不截断输出。
    • -q :静默模式,只显示容器编号。
    • -s :显示总的文件大小。
    docker ps                                                   # 列出当前所有正在运行的容器
    docker ps -qa                                               # 列出所有容器的ID
    docker ps -n 5                                              # 列出最近创建的5个容器信息
    
    docker ps -f id=5b6                                         # 按id过滤
    docker ps -f name=nginx                                     # 按name过滤
    docker ps -f status=running                                 # 按status过滤
    

    获取容器/镜像的元数据:

    docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
    172.17.0.3
    
    docker inspect mysql:5.6
    [
        {
            "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec",
            "RepoTags": [
                "mysql:5.6"
            ],
            "RepoDigests": [],
    ...
    

    执行容器中的shell:

    docker exec -i 镜像ID /bin/bash -c "/home/build.sh"         
    

    OPTIONS说明:

    • d :分离模式: 在后台运行
    • i :即使没有附加也保持STDIN 打开
    • t :分配一个伪终端

    操作容器

    # 启动、停止、重启、杀死某个docker 容器
    docker start 容器ID
    docker stop 容器ID
    docker restart 容器ID
    docker kill 容器ID
    
    docker rm Name/ID                                  # 删除容器
    docker rm -f Name/ID                               # 强制删除某个容器
    docker rm $(docker ps -qa)                         # 删除所有容器
    docker rm $(docker ps -q -f status=exited)         # 删除所有状态为exit的容器
    
    docker pause                                       # 暂停容器中所有的进程。
    docker unpause                                     # 恢复容器中所有的进程。
    
    docker create                                      # 创建一个新的容器但不启动它
    
    docker top Name/ID                                 # 查看容器内运行的进程
    docker attach Name/ID                              # 连接到正在运行中的容器
    docker wait Name/ID                                # 阻塞运行直到容器停止,然后打印出它的退出代码。
    docker cp NameID:容器内的文件路径 宿主机路径        # 从容器里面拷贝文件/目录到本地一个路径
    
    

    从服务器获取实时事件:

    docker events [OPTIONS]
    

    OPTIONS说明:

    • -f :根据条件过滤事件;
    • --since :从指定的时间戳后显示所有事件;
    • --until :流水时间显示到指定的时间为止;
    docker events -f "image"="mysql:5.6" --since="2016-07-01" 
    

    查看容器日志

    docker logs [OPTIONS] CONTAINER
    

    OPTIONS说明:

    • -f : 跟踪日志输出
    • --since :显示某个开始时间的所有日志
    • -t : 显示时间戳
    • --tail :仅列出最新N条容器日志
    docker logs --since="2016-07-01" --tail=10 mynginx   #查看容器mynginx从2016年7月1日后的最新10条日志
    
    Last Updated:
    Contributors: klc407073648
    Prev
    Docker - Dockerfile学习
    Next
    Docker - Docker-compose学习