1 案例
编写Dockerfile,生成docker镜像,要求启动容器时自动启动服务
dockerfile执行build命令,从上到下依次组成部分
主要部分 代表性命令
基础镜像信息 FROM
维护者信息 MAINTAINER
镜像操作指令 RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME、ENV等
容器启动时执行指令 CMD、ENTRYPOINT
- dockerfile:
# 设置基础构建镜像 FROM [base镜像] # 设置创建者的基本信息 MAINTAINER [name] # 设置环境变量 ENV # 安装相关软件 RUN # 将本地需要的配置信息添加到镜像中 ADD run.sh /run.sh # 修改文件的执行权限 RUN chmod +x / # 暴露端口进行主机映射 EXPOSE # 构建容器后,容器启动运行可能是bash文件 CMD ["/run.sh"]
- run.sh
#!/bin/bash 声明解释器:使用bash来运行该文件 bash run.sh
<解释器> <脚本文件>
例如:
#!/bin/bash 就等于 bash <脚本文件>
使用其他解释器
现在我们修改解释器,改为#!/bin/cat
#!/bin/cat
echo hello
2 综合命令详解
2.1 FROM
FROM:指定基础镜像,必须为dockerfile中的第一个命令
格式:
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
示例:
FROM mysql:5.6
注:
tag或digest是可选的,如果不使用这两个值时,会使用latest版本的基础镜像
复制代码
2.2 MAINTAINER: 维护者信息
格式:
MAINTAINER <name>
示例:
MAINTAINER Jack
MAINTAINER jack@163.com
MAINTAINER Jack <jack@163.com>
2.3 ENV:设置环境变量
格式:
ENV <key> <value> #<key>之后的所有内容均会被视为其<value>的组成部分,因此,一次只能设置一个变量
ENV <key>=<value> ... #可以设置多个变量,每个变量为一个"<key>=<value>"的键值对,如果<key>中包含空格,可以使用\来进行转义,也可以通过""来进行标示;另外,反斜线也可以用于续行
示例:
ENV myName John Doe
ENV myDog Rex The Dog
ENV