• dockfile杂项


    工程源代码+工程的配置文件 在外面配置好

    1 工程的配置文件,是工程的一部分

    2 要贯彻内聚原则, 用1句挂载整个工程。

    在外面集中配置好在一个路径下,一起挂进去或者COPY进去。

    防止先COPY了体积小的“配置文件”,然后发现-v挂源码执行不了,于是又COPY了体积大的工程源码。

    根据docker image的覆盖机制,如果整个目录覆盖,那么本来有的,覆盖之后也没有了。

    ADD与COPY

    HOST端 

    绝对路径 ——ADD,

    相对dockerfile路径下的相对路径 ./  ——用COPY

    但COPY不能用../访问dockerfile所在路径的上级路径

    IMAGE端:

    COPY要写绝对路径,一定要检查正确

    docker-compse -v 时,两边都绝对路径。

    如果COPY总提示错误,查看一下.dockerignore 

    ENTRYPOINT与CMD

    都是启动容器后才执行的语句(创建镜像时不执行。如果想创建镜像时执行,直接用RUN)

    每种只能有1句:如果有多个CMD,只会执行最后1个。但是CMD里可以 用 && 执行多条。但其实执行多条命令,应该直接写成1个sh

    ENTRYPOINT会先执行,再执行CMD。CMD不会覆盖ENTRYPOINT

    也可以不写在dockerfile里。docker-compose.yml里 等价的语句是

    entrypoint  command  (小写)

    停止、删除全部容器

    docker stop $(docker ps -q) & docker rm $(docker ps -aq)

    删除none镜像

    docker rmi $(docker images | grep "none")

    卸载nginx

    如果docker-compose up失败,提示端口占用,可能是host上正在运行着什么,比如nginx

    卸载要这样写sudo apt-get remove nginx nginx-common

    查看运行时内存CPU占用

    docker stats $(docker ps | awk '{if(NR>1) print $NF}')
  • 相关阅读:
    5(计算机网络)从物理层到MAC层
    3 (mysql实战) 事务隔离
    2 (mysql实战) 日志系统
    1 (msql实战) 基础架构
    498. (leetcode)对角线遍历
    图解jvm--(四)内存模型
    图解jvm--(三)类加载与字节码技术
    Java:CAS(乐观锁)
    如何搭建Swagger接口文档
    为什么redis cluster至少需要三个主节点?
  • 原文地址:https://www.cnblogs.com/xuanmanstein/p/8010532.html
Copyright © 2020-2023  润新知