• Docker基础知识


    文章目录

    Docker

    一次构建,处处运行,类似于JVM

    虚拟机是软件+硬件(需要Hypervisors实现硬件资源虚拟化):

    • 资源占用大
    • 启动慢(虚拟机是分钟级,Docker是秒级)
    • 冗余步骤多

    sha256的哈希码

    :tag 表示版本标签

    开发/运维(DevOps)

    docker采用分层文件结构UnionFS(联合文件系统),因为存在镜像依赖,方便后期共享资源,数据持久化和容器继承

    dockerfile是用来构建Docker镜像的构建文件,由一系列命令和参数构成的脚本,拥有自身的一套保留字指令

    FORM
    # 指出当前镜像基于什么,例如scratch就是docker中所有镜像的Base镜像(父镜像)
    
    • 1
    • 2
    MAINTAINER
    # 作者信息
    
    • 1
    • 2
    RUN
    # 构建镜像过程中所需要运行的命令
    
    • 1
    • 2
    EXPOSE
    # 指定容器对外暴露出的端口号
    
    • 1
    • 2
    WORKDIR
    # 默认登录后的操作目录(落脚点),pwd显示的目录地址
    
    • 1
    • 2
    ENV
    # 用来设置环境变量
    
    • 1
    • 2
    COPY
    # 拷贝文件
    
    • 1
    • 2
    ADD
    # 拷贝+处理并解压缩宿主机中的url或tar包
    
    • 1
    • 2
    VOLUME
    # 指定容器数据卷
    
    • 1
    • 2
    CMD
    # 指定容器启动时要运行的命令,可以有多个,但只有最后一个生效,会被docker run之后的参数替换
    
    • 1
    • 2
    ENTRYPOINT
    # 指定容器启动时要运行的命令,docker run之后的参数追加
    
    • 1
    • 2
    ONBUILD
    # 类似于触发器,父镜像被子镜像继承后触发相应动作
    
    • 1
    • 2
    • 编写dockerfile后重新构建生成自定义的镜像命令
    docker build -f /dockerfile地址 -t tylt6688/xxx:1.0 .
    
    • 1
    • 下载镜像
    docker pull xxx 
    
    • 1
    • 运行当前名称的镜像,本地优先
    docker run
    args --name="xxx"  为容器指定别名
         -it    以交互模式运行容器并j分配一个伪输入终端
         -d     以守护进程方式后台运行容器
         -p 8888:8080 指定(外部:内部)端口映射
         -P 端口随机分配,可使用ps命令查看具体外部端口
         -v /宿主机绝对地址:/容器内相对地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 查看镜像生成的容器以及信息
    docker ps
    args  -a
    	  -n 3 查看最近几个
    
    • 1
    • 2
    • 3
    • 验证docker版本号
    docker version 
    
    • 1
    • 安装docker当前信息
    docker info    
    
    • 1
    • docker帮助命令
    docker --help
    
    • 1
    • 列出本地镜像
    docker images
    args  -a
    	  -q 显示镜像id
    
    • 1
    • 2
    • 3
    • 查询某个镜像
    docker search xxx
    
    • 1
    • 点赞数超过30的镜像
    docker search -s 30 xxx
    
    • 1
    • 删除镜像,删除多个镜像中间加空格
    docker rmi xxx
    args  -f 强制删除
    
    • 1
    • 2
    • 启动容器
    docker start xxx
    
    • 1
    • 重启容器
    docker restart xxx
    
    • 1
    • 停止容器
    docker stop xxx
    
    • 1
    • 强制关闭容器
    docker kill xxx
    
    • 1
    • 删除已停止的容器
    docker rm xxx
    
    • 1
    • 进入指定容器命令行
    docker exec -it xxx /bin/bash
    
    • 1
    • 对当前容器修改后重新打包镜像
    docker commit -m="备注内容" -a="作者" containerid tylt6688/container:1.0
    
    • 1
    • 以 Json 串的形式描述整个容器
    docker inspect
    
    • 1
    • 进入容器内部
    docker attach xxx
    
    • 1
    • 查看镜像构建历史
    docker history xxx
    
    • 1
    • 针对某个容器执行某些命令
    docker exec xxx java -version
    
    • 1
  • 相关阅读:
    Simulink 自动代码生成电机控制:Keil工程转到CubeIDE操作(1/2)
    redis缓存一致性以及解决方案
    boundary IoU 的计算方式
    高等教育心理学:知识的学习
    【开发篇】七、RedisTemplate与StringRedisTemplate + Jedis与Lettcus
    【计算机视觉40例】案例26:姿势识别
    【C++ Primer Plus学习记录】第4章编程练习
    杰理蓝牙芯片主流批量生产烧录方式
    围绕新市民金融聚焦差异化产品设计、智能技术提效及素养教育
    国庆苍穹外卖项目心得
  • 原文地址:https://blog.csdn.net/tylt6688/article/details/134021830