zoukankan      html  css  js  c++  java
  • Docker的学习1 安装 与 基础篇

    0 学习资料

    参考手册 https://www.runoob.com/docker/docker-tutorial.html

    学习视频 https://www.bilibili.com/video/BV1Vs411E7AR

    学习笔记与脑图:https://pan.baidu.com/s/1J0O3nPZp0JcLEP57wh2pzw
    提取码:3m9a

    1 安装

    1.1 docker的安装

    https://www.cnblogs.com/chxmtl/p/13915334.html

    1.2 出现错误

    https://blog.csdn.net/qq_38388811/article/details/109686437

    2 注册阿里云

    2.1 镜像加速器

    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

     

    我的专属加速器地址:https://9vt58t5l.mirror.aliyuncs.com

    2.2 配置本机的运行加速器

    vim /etc/docker/daemon.json
    

     


    网易云和百度云可以不注册直接使用

    {
      "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
      ]
    }

     3 启动Docker后台容器

    测试运行hello-world

    docker run hello-world

    容器与镜像的关系类似于面向对象程序中的对象与类的关系

    以镜像为模板,生成容器为实例

    Unable to find image 'hello-world:latest' locally
    没有在本地找到hello-world的最新镜像,latest代表最新。

    latest: Pulling from library/hello-world
    从远程(docker hub 或者阿里云)拉取最新镜像

    0e03bdcc26d7: Pull complete
    Digest: sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d
    Status: Downloaded newer image for hello-world:latest
    以该镜像为模板生成容器实例运行

    4 docker的框架图

    docker_host:主机

      images 镜像。

      镜像就是模板

      container:容器(集装箱)。

      镜像的实例就是容器。独立运行的一个或一组应用。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的linux环境(包括root权限、进程空间、用户空间和网络空间)和运行在其中的应用程序。

    容器的定义和镜像几乎一模一样。也是一堆成的统一视角,唯一的区别在于容器的最上面一层是可读可写的。

    client:命令终端

    repository:仓库

    仓库repository与仓库注册服务区registry是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中有包含了多个镜像,每个镜像有不同的标签tag(类似于版本号)。

     5 docker命令

    5.1 帮助命令

    5.1.1 docker info

    Containers: 1 有多少个容器
      Running: 0
      Paused: 0
      Stopped: 1
     Images: 1 多少个镜像

    5.1.2 docker --help

    查看所有docker的常用命令

    5.2 镜像命令

    5.2.1 docker images 列出本地主机上的镜像


    REPOSITORY   镜像的仓库源

    TAG      镜像的标签。同一个仓库源有多个tag,代表这个仓库源不同个版本,我们使用REPOSITORY :TAG来定义不同的镜像

    如果你不指定一个镜像的版本标签,例如你只使用ubuntu,docker将默认使用ubantu:latest镜像

    IMAGE ID 镜像的id

    CREATED        镜像创建时间

    SIZE 镜像的大小

    1 docker images -a 列出本地所有的镜像。列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)

    镜像是分层嵌套的

    2 docker images -q  只显示镜像id

    返回id的集合。可以批量删除的时候使用

    3 docker images --digests  显示镜像的摘要信息

    REPOSITORY    TAG       DIGEST                                                                    IMAGE ID只有开头       CREATED         SIZE
    hello-world   latest    sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d   bf756fb1ae65   12 months ago   13.3kB

    4 docker images --no-trunc 显示完整的镜像信息

    REPOSITORY    TAG       IMAGE ID 完整的                                                               CREATED         SIZE
    hello-world   latest    sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b   12 months ago   13.3kB

    5.2.2 docker search xxx 某个镜像的名字(从docker hub上查找)

    相当于去https://hub.docker.com 上查找

    STARS ⭐ 相当于点赞数

    OFFICIAL 是否是官方版

    AUTOMATED 自动构建

    5.2.3 docker pull xxx 拉取某个镜像

    拉取方式其实每个页面都有 https://hub.docker.com/_/tomcat

    等价于 docker pull jelastic/tomcat:latest

    tomcat里也有其他镜像。一层层叠加

    5.2.4 docker rmi xxx  删除某个镜像 xxx可以是镜像id或者唯一镜像名

    docker rmi hello-world 相当于 docker rmi hello-world:latest

    因为容器正在使用这个镜像 ,所以删不掉

    docker rmi  -f  hello-world    强制删除

    docker rmi -f 镜像名1:tag 镜像名2:tag

    例如 docker rmi -f hello-world nginx

    删除全部镜像

    docker rmi -f $(docker images -qa)

    5.3 容器命令

    5.3.1 新建并启动容器  docker run -it 300e315adb2f

    有镜像才能创建容器,这是根本前提

    i 交互

    t 伪终端

    更多参数说明https://www.runoob.com/docker/docker-run-command.html

     

    5.3.2 列出当前所有正在运行的容器  docker ps

    docker ps 当前正在运行的

    NAMES gifted_galileo 系统随机分配的名字 也可以在run的时候用--name指定

    docker run -it  --name="mycentos" 300e315adb2f

    -a 列出当前正在运行的容器+历史上运行过的容器

    -l 显示最近创建的容器

    docker ps -l

     status :exited 代表已经退出 。up代表正活跃

    -n 显示最近n个创建的容器

    -q 静默模式,只显示容器编号

    5.3.3 退出容器 exit和ctrl+P+Q

    退出有两种方式 exit 和 ctrl+P+Q

    exit 容器停止退出

     ctrl+P+Q 容器不停止退出

    在第二行的时候按下ctrl+P+Q

    状态还是up

    5.3.4 启动容器 docker start xxxx 容器名或容器id

    779853915ab2容器已经退出

     

    5.3.5 重启容器 docker restart xxx

    重启以后执行时间变了

    5.3.6 停止容器 docker stop 容器id或者容器名

    5.3.7 强制停止容器 docker kill容器id或者容器名

    stop是慢慢熄火停止,相当于正常关机、

    5.3.8 删除已停止容器 docker rm 容器id或名字

    docker rmi 是删除镜像 没有i是删除容器

    如果要删没有停止的容器 加上-f 强制删除

    docker rm -f mycentos008

    一次性删除多个容器

    docker ps -a -q | xargs docker rm

    或者

    docker rm   $(docker ps -a -q)

    有个容器正在运行 不能删除,用上-f再执行一次

     

  • 相关阅读:
    指针与数组
    深入函数
    到底是使用指针还是引用 ,混合使用以及易错点
    返回值作为标志
    c++的引用(二)
    内联函数
    c++的引用
    指针总结以及常量指针与指向常量的指针与指向常量的常指针
    c++中的 堆和栈
    Java Messages Synchronous and Asynchronous
  • 原文地址:https://www.cnblogs.com/polax/p/14311329.html
Copyright © 2011-2022 走看看