Docker

Docker

基本概念

  • 世界领先的软件容器平台
  • 优点
    • Docker的镜像提供了除内核外完整的运行时环境,确保了运行环境一致性
    • 秒级的启动时间
    • 磁盘使用空间少,一般为MB,单机支持上千个容器
  • 生命周期
    • 镜像(一个特殊的文件系统)
      • 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)
      • 镜像不包含任何动态数据,其内容在构建之后也不会被改变
      • 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层
    • 容器(镜像运行时的实体)
      • 容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等
      • 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失
      • 使用数据卷后,容器可以随意删除、重新 run ,数据却不会丢失
    • 仓库(集中存放镜像文件的地方)
      • 一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本
  • example
    • 建好房子,房子当做镜像放到包里,可以在别的地方变出房子
    • 包是Docker仓库,放在包里的是Docker镜像,空地上的床是Docker容器

使用

下载镜像
  • 下载镜像(仓库/镜像名:版本)
    localhost:~ didi$ docker pull docker.io/mysql:5.7
    
  • 验证(查看本地镜像)
    localhost:~ didi$ docker images
    
  • 细节
    bf5952930446: Pull complete 
    8254623a9871: Pull complete 
    938e3e06dac4: Pull complete 
    ea28ebf28884: Pull complete 
    f3cef38785c2: Pull complete 
    
    • 一个镜像由多个层组成,类似bf5952930446这样的串表示层的唯一ID,重复的层使用本地的即可
  • pull子命令
    • -a,--all-tags=true|false: 是否获取仓库中所有镜像,默认为否
    • --disable-content-trust: 跳过镜像内容的校验,默认为 true
Docker查看镜像信息
  • images命令列出镜像
    localhost:~ didi$ docker images
    localhost:~ didi$ docker image ls
    
  • 使用tag命令为镜像添加标签
    localhost:~ didi$ docker tag docker.io/mysql:5.7 wy_mysql:5.7
    
  • 使用inspect命令查看镜像详细信息
    localhost:~ didi$ docker inspect docker.io/mysql:5.7
    localhost:~ didi$ docker inspect -f {{".Size"}} docker.io/mysql:5.7
    
  • 使用history命令查看镜像历史
    localhost:~ didi$ docker history docker.io/mysql:5.7
    localhost:~ didi$ docker history --no-trunc docker.io/mysql:5.7
    
Docker搜索镜像
  • search命令
    docker search [option] mysql
    localhost:~ didi$ docker search mysql
    
  • search子命令
    • -f,--filter filter: 过滤输出的内容
    • --limitint:指定搜索内容展示个数
    • --no-index: 不截断输出内容
    • --no-trunc:不截断输出内容
    //搜索官方提供的 mysql 镜像
    localhost:~ didi$ docker search --filter=is-official=true mysql
    //搜索 Stars 数超过 100 的 mysql 镜像
    localhost:~ didi$ docker search --filter=stars=100 mysql
    
Docker删除镜像
  • 通过标签删除镜像
    localhost:~ didi$ docker rmi wy_mysql:5.7
    localhost:~ didi$ docker image rm wy_mysql:5.7
    
    • -f,-force: 强制删除镜像,即便有容器引用该镜像
    • -no-prune: 不要删除未带标签的父镜像
  • 通过ID删除镜像(先删除标签,再删除镜像本身)
    localhost:~ didi$ docker rmi ee7cbd482336
    
  • 删除镜像的限制
    • 有容器正在引用镜像无法删除
  • 清理镜像
    localhost:~ didi$ docker image prune
    
    • -a,--all: 删除所有没有用的镜像,而不仅仅是临时文件
    • -f,--force:强制删除镜像文件,无需弹出提示确认
Docker创建镜像
  • 基于已有的镜像创建
  • 基于Dockerfile创建
  • 基于本地模板导入
Docker导出&加载镜像
  • 导出镜像
    localhost:~ didi$ docker save -o mysql_5_7.tar mysql:5.7
    
  • 加载镜像(别人导入本地镜像库)
    localhost:~ didi$ docker load -i mysql_5_7.tar
    localhost:~ didi$ docker load < mysql_5_7.tar
    
Docker上传镜像
  • 上传镜像
    //获取Docker ID
    //创建镜像仓库
    //登录
    localhost:~ didi$ docker login
    //创建标签(前缀与我们新创建的 Docker ID 、仓库名保持一致)
    localhost:~ didi$ docker tag docker.io/mysql:5.7 wy_mysql:5.7
    //上传镜像
    localhost:~ didi$ docker push wy_mysql:5.7
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值