JAVA全系列 教程
3762个小节阅读:7094.1k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
指定容器启动的要运行的命令,可以追加命令
指令格式:
xxxxxxxxxx
ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2 (shell内部命令)
示例
xxxxxxxxxx
ENTRYPOINT ["top", "-b"]
注意:
ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。
这个指令非常简单,就是用于设置环境变量而已,无论是接下来的指令,还是在容器中运行的程序,都可以使用这里定义的环境变量。
指令格式:
xxxxxxxxxx
ENV <key>=<value>
示例
xxxxxxxxxx
ENV JAVA_HOME=/usr/local/jdk1.7.0_79
ENV PATH=$JAVA_HOME/bin:$PATH
指定于外界交互的端口
指令格式:
EXPOSE
示例
xxxxxxxxxx
EXPOSE 80
注意:
EXPOSE并不会让容器的端口访问到主机。要使其可访问,需要在docker run运行容器时通过-p来发布这些端口,或通过-P参数来发布EXPOSE导出的所有端口。
用于指定持久化目录
指令格式:
xxxxxxxxxx
VOLUME ["/path/to/dir"]
示例
xxxxxxxxxx
VOLUME ["/data"]
VOLUME ["/var/www", "/var/log/apache2"]
注意:
一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
xxxxxxxxxx
1 卷可以容器间共享和重用
2 容器并不一定要和其它容器共享卷
3 修改卷后会立即生效
4 对卷的修改不会对镜像产生影响
5 卷会一直存在,直到没有任何容器在使用它
USER
指令用于将会用以什么样的用户去运行
指令格式:
xxxxxxxxxx
USER user
USER user:group
注意:
使用USER指定用户后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT都将使用该用户。镜像构建完成后,通过
docker run
运行容器时,可以通过-u参数来覆盖所指定的用户。
帮助别人定制而准备的
指令格式:
xxxxxxxxxx
ONBUILD [INSTRUCTION]
示例
xxxxxxxxxx
FROM centos
WORKDIR /data
ONBUILD RUN mkdir test
FROM test:02
1. Dockerfile文件如何保留端口号_____。。
A ENV
B EXPOSE
C USER
D ONBUILD
2. Dockerfile文件如何设置环境变量_____。。
A ENV
B VOLUME
C USER
D EXPOSE
1=>B 2=>A