Python全系列 教程
3567个小节阅读:5929.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
根据 Docker 的官方文档和最佳实践,FROM
指令通常被放置在 Dockerfile 的顶部。
FROM 指令通常应该作为第一条指令出现,用于指定基础镜像。
从而决定了接下来的指令如何执行。这是 Dockerfile 中的一个约定,也是一个良好的实践,因为它清晰地指示了构建的起点
格式
xxxxxxxxxx
21FROM [image]
2FROM [image]:<tag>
示例
xxxxxxxxxx
11FROM ubuntu:20.04
用于在容器内执行命令,通常用于安装软件、更新包、设置配置等操作。
格式
xxxxxxxxxx
41# shell模式
2RUN <command>
3# exec模式
4RUN ["executable", "param1", "param2"]
示例
xxxxxxxxxx
11RUN apt-get update && apt-get install -y python3
构建容器后调用,也就是在容器启动时才进行调用。
指定这个容器启动的时候要运行的命令只有最后一个会生效可被替换。
格式
xxxxxxxxxx
41# shell格式
2CMD <命令>
3# exec格式:
4CMD ["可执行文件", "参数1", "参数2", …]
示例
xxxxxxxxxx
21CMD echo "This is a test." | wc
2CMD ["/usr/bin/wc","--help"]
注意 CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。
用于设置容器启动时执行的命令,类似于 CMD
命令,但 ENTRYPOINT
的参数不会被覆盖
格式
xxxxxxxxxx
41# shell模式
2RUN <command>
3# exec模式
4RUN ["executable", "param1", "param2"]
示例
xxxxxxxxxx
11RUN apt-get update && apt-get install -y python3
注意
每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效
用于声明容器将监听的端口。这并不会实际打开端口,只是一个标记。
格式
xxxxxxxxxx
11EXPOSE port
示例
xxxxxxxxxx
11EXPOSE 5000
课上代码
xxxxxxxxxx
111# 指定基础镜像是谁
2FROM centos:7
3# 执行要执行的命令,后者要安装的软件
4# RUN touch /opt/a1.info
5# RUN touch /opt/a2.info
6# RUN touch /opt/a3.info && touch /opt/a4.info
7
8# 创建完镜像以后,启动容器时执行指定的命令
9# CMD echo "this is content" | wc
10# CMD ["ls","-a"]
11ENTRYPOINT ["ls","-a"]
实时效果反馈
1. 在 Dockerfile 中,以下哪个指令用于设置容器启动后默认执行的命令?
A FROM
B RUN
C CMD
与ENTRYPOINT
D EXPOSE
答案
1=>C