02-Dockerfile的基本使用
2024-08-26 14:43:14
1. FROM
作用:指定基础镜像
使用:FROM 镜像名
demo:
FROM mysql
FROM mysql:5.6
2. RUN
作用:指令是用来执行命令行命令的
使用:
shell格式:RUN命令,就跟直接在命令行输入命令一样
demo:RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec格式:RUN ['可执行文件', '参数1', '参数二']
3. MAINTAINER
作用:维护者的信息
使用:MAINTAINER <name>
demo:MAINTAINER 萌新瑟瑟发动
4. ADD
作用:将本地文件添加到容器中 压缩包类型的文件会自动解压(网络文件不会解压),可以访问网络
使用:ADD 本地文件 虚拟机路径
5. COPY
作用:功能类似ADD 但是不能解压和访问网络资源
使用:COPY 本地文件 虚拟机路径
6. CMD
作用:构建容器后调用,也就是在容器启动的时候才进行调用
使用:
CMD ['executable', 'param1', 'param2'] # 执行可执行的软件 优先
CMD ['param1', 'param2'] # 设置ENTPYPOINT,直接调用 ENTPYPOINT语法 + 参数
CMD command parm1, parm2 # 执行shell 内部命令
注意:
CMD 指定容器启动时执行的命令
RUN 指定镜像构建所执行的命令
7. ENV
作用:设置环境变量
使用:
ENV <key> <value> # <key>之后所有的部分都会被当成value的一部分
ENV <key>=<value> # 可以设置多个变量每个变量为一个key=value的键值对,若其中<key>包含空格可以使用\ 进行转译。 也可以使用'' 标志,另外 \ 可以用于换行
8. EXPOSE
作用:指定外界交互端口
使用:EXPOSE <port> <port> # 主机端口/tcp 虚拟机端口/tcp 注: /tcp 可选
9. VOLUME
作用:用于指定持久化目录
使用:
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]
注:一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
1、卷可以容器间共享和重用
2、容器并不一定要和其它容器共享卷
3、修改卷后会立即生效
4、对卷的修改不会对镜像产生影响
5、卷会一直存在,直到没有任何容器在使用它
10. WORKDIR
作用:工作路径,类似linux命令的 cd
使用:WORKDIR <path>
注意:通过WORKDIR设置工作目录后,在Dockerfile 其后的命令RUN、CMD等命令就在此目录下执行。在使用docker run 运行容器时,可以通过 - w 参数覆盖构建时所设置的工作目录
11. USER
作用:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
使用:
USER user
USER user:group
USER uid
USER uid:gid
USER user:gid
USER uid:group
12. ARG
作用:用于指定传递给构建运行时的变量
使用:ARG <name>[==<default value>]
最新文章
- 在Ubuntu14.04_ROS_indigo上安装Kinect2驱动和bridge
- shell 使用
- Log4net使用(二)
- webpack 教程 那些事儿05-多页应用
- 集成架构:对比 Web API 与面向服务的架构和企业应用程序集成(转)
- POJ 3264-Balanced Lineup, NYOJ 119-士兵杀敌3 线段树
- Android中的Drawable资源
- zookeeper的异常处理(Disconnected, SyncConnected, Expired)
- php信用卡卡号验证函数
- java基础程序题
- javascript权威指南(6) - 对象
- 三、 添加视图View(ASP.NET MVC5 系列)
- Python内置函数(38)——zip
- NSA Fuzzbunch中EternalRomance工具复现过程
- mktime 和 TZ
- C#四则运算器(多态方法实现)
- SpringMVC DispatcherServlet-------视图渲染过程
- elasticsearch-hadoop使用
- PHP-密码学算法及其应用-散列函数
- Netty 源码分析之 番外篇 Java NIO 的前生今世