首页 > 其他分享 >Docker 知识汇总

Docker 知识汇总

时间:2022-11-08 17:03:51浏览次数:47  
标签:CMD 知识 汇总 ENTRYPOINT yum 格式 Docker sudo docker

centos 安装docker

#!/bin/bash

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd


sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io

# 加入国内镜像源:在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

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


# 启动docker
sudo systemctl start docker

# 设置开机启动
sudo systemctl enable docker

# 加载docker配置,重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

Dockerfile 中 CMD 和ENTRYPOINT 的区别

1-联系

  • 允许用户指定容器的默认执行的命令

2-区别

  • CMD有3种格式,Exec 格式是 CMD 的推荐格式

    Exec 格式:CMD ["executable","param1","param2"]
    CMD ["param1","param2"] 为 ENTRYPOINT 提供额外的参数,此时 ENTRYPOINT 必须使用 Exec 格式。
    Shell 格式:CMD command param1 param2
    
  • ENTRYPOINT 有两种格式

    Exec 格式:ENTRYPOINT ["executable", "param1", "param2"] 这是 ENTRYPOINT 的推荐格式
    Shell 格式:ENTRYPOINT command param1 param2
    
    ## Exec 格式
    
    ENTRYPOINT 的 Exec 格式用于设置要执行的命令及其参数,同时可通过 CMD 提供额外的参数。
    
    ENTRYPOINT 中的参数始终会被使用,而 CMD 的额外参数可以在容器启动时动态替换掉。
    
    比如下面的 Dockerfile 片段:
    
    ENTRYPOINT ["/bin/echo", "Hello"]  
    CMD ["world"]
    
    当容器通过 docker run -it [image] 启动时,输出为:
    Hello world
    
    而如果通过 docker run -it [image] CloudMan 启动,则输出为:
    Hello CloudMan
    
    ## Shell 格式
    
    ENTRYPOINT 的 Shell 格式会忽略任何 CMD 或 docker run 提供的参数。
    
  • 如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。

  • 如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。

  • ENTRYPOINT 看上去与 CMD 很像,它们都可以指定要执行的命令及其参数。不同的地方在于 ENTRYPOINT 不会被忽略,一定会被执行,即使运行 docker run 时指定了其他命令。

Docker 避免每次更新代码后都重新安装依赖

  • 先单独拷贝依赖文件(requirements.txt)到docker中,再立即安装依赖。由于通常在更新代码之后,依赖文件并没有改变(改变的代码部分在下一步才会被拷贝到镜像中),因此docker在build中会显示“using cache”(调用缓存),从而避免了重新安装依赖。
FROM python:3.6
WORKDIR /qqzone
# 先将依赖文件拷贝到项目中
COPY requirements.txt /qqzone
# 执行指令,安装依赖
RUN pip install -i -r requirements.txt
# 拷贝项目文件和代码
COPY . /qqzone
CMD python src/web/server.py

标签:CMD,知识,汇总,ENTRYPOINT,yum,格式,Docker,sudo,docker
From: https://www.cnblogs.com/beihangxuwei/p/16870260.html

相关文章

  • 610007 CAD CAD快捷键汇总
    1、绘图快捷命令:命令简码全码直线l*line射线xl、ray*xline多线ml*mline多段线pl*pline多段线编辑pe*pedit样条曲线spl*spline......
  • 程序员必知的“大数据”基础知识!
    当今这个时代,我相信大部分人对“大数据”这三个字肯定都不陌生,或多或少都有接触过,例如大数据杀熟。对我们程序员来说,仅仅知道或听过一些名词是不够的,至少需要知晓其中大概......
  • 【JavaScript 教程】第二章基础知识03—JavaScript 数据类型
    英文 | https://www.javascripttutorial.net/译文|杨小爱在上节中,我们学习了JavaScript的变量,错过的小伙伴可以点击文章《​​【JavaScript教程】第二章基础知识02—Ja......
  • Docker笔记
    安装安装yum工具yuminstall-yyum-utils\device-mapper-persistent-data\lvm2--skip-broken更新本地镜像源#设置docker镜像源yum......
  • python第三十课---面向对象的魔法方法,元类相关知识
    昨日内容回顾派生方法实战案例1.继承某个类2.重写被继承类里面的某个方法3.在方法内添加一些额外的操作4.最后利用super重新调用被继承类里面的方法"""super:子类......
  • docker 命令学习
    启动docker-compose:docker-composeup-d列出所有容器:docker-composeps停止容器:docker-composestop停止正在运行的容器,可以通过docker-composestart再次启动查......
  • 孙荣辛|大数据穿针引线进阶必看——Google经典大数据知识
    大数据技术的发展是一个非常典型的技术工程的发展过程,荣辛通过对于谷歌经典论文的盘点,希望可以帮助工程师们看到技术的探索、选择过程,以及最终历史告诉我们什么是正确的选......
  • 操作系统学习笔记——全部知识点流程图
    在学习操作系统时对各部分的流程及具体如何工作特别困惑,所以总结了笔记,并分享出来,特别是蓝色和红色字体。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。参考书......
  • Springboot +Docker 架构的项目中,怎么修改设置JVM堆内存的大小?
    在项目的dockerfile文件中设定      【参数解析】在Java应用程序启动时,添加如下参数并设置大小:参数说明-Xmx设置JVM最大可用堆内存大小......
  • Oracle、MySQL等数据库故障处理优质文章分享 | 10月汇总
    墨天轮社区于9月起持续举办【聊聊故障处理那些事儿】DBA专题征文活动,每月进行评优发奖,鼓励大家记录工作中遇到的数据库故障处理过程,不仅用于自我复盘与分析,同时也能帮助其......