Docker学习

(12条消息) Docker笔记三_欲掩一川的博客-CSDN博客_with look wp(time,[(0,0)—(20,1)],(2,0.1)(4, 0.14),

1. COPY指令与ADD的区别

COPY指令不支持从远程URL获取资源,只能从执行docker build所在的主机上读取资源并复制到镜像中;而ADD指令支持从远程URL获取资源,可以通过URL从远程服务器读取资源并复制到镜像中。

ADD 的 src 是归档文件(tar、zip、tgz 等),这些归档文件会被自动解压到 dest (镜像目标路径),无需手动解压。

相同需求时,推荐使用COPY指令。ADD指令更擅长读取本地tar文件并解压缩

2. CMD和ENTRYPOINT的区别

1)CMD:

设置容器启动后默认执行的命令及其参数,但 docker run 后跟参数时会替换(忽略)

  • docker run 没指定其他命令:则启动容器时运行 CMD 后的命令;
  • docker run 指定了其他命令:则启动容器时运行 CMD 后的命令会被忽略;
  • Dockerfile 中有多条 CMD 指令时,仅最后一条生效。

2)entrypoint:

配置容器启动时运行的命令

entrypoint 一定会被执行

ENTRYPOINT指令的优先级更高,先执行ENTRYPOINT,再执行CMD

总结

  • 如果Docker镜像的用途是运行应用程序或服务,比如运行一个MySQL,应该优先使用Exec格式的entrypoint指令。cmd可为entrypoint提供额外的默认参数,同时可利用docker run命令行替换默认参数。
  • 如果想为容器设置默认的启动命令,可使用cmd指令。用户可在docker run命令行中替换此默认命令。

3. RUN

执行命令并创建新的镜像层,常用于安装软件包

yum update和yum install被放在一个run指令中执行,这样能够保证每次安装的是最新的包。如果yum install在单独的run中执行,则会使用yum update创建的镜像层,而这一层可能是很久以前缓存的

你可能感兴趣的:(学习,docker)