01 USER
# 作用:指定基于该镜像启动的容器,会以哪个用户的身份来运行
# 多种指定方式
USER user # 用户名
USER user:group # 用户名:用户组
USER uid # 用户id
USER uid:gid # 用户id与组id
USER user:gid # 用户名与组id
USER uid:group # 用户id与组名
# 扩展:可以使用 -u 选项,在启动容器时,指定以哪个用户的身份来运行
# 提示:如果什么都没有指定,默认用户是 root
02 VOLUME
# 作用:没发现有啥用,一般会在启动容器时,使用 -v 选项来挂载卷
03 ADD
# 作用:将构建上下文中的文件或目录复制到镜像中
# 范例:将构建上下文中的 software.lic 复制到镜像中的/opt/applocation/software.lic
ADD software.lic /opt/applocation/software.lic
# 注意
## 源文件的位置参数也可以是 URL
## 不能对构建上下文外的文件或目录执行 ADD 操作
## Docker通过目的地址参数的末尾字符来判断文件源是目录还是文件,如果目的地址以 / 结尾,那么 Docker 就认为源位置指向的是目录
## 如果将一个归档文件(合法的归档文件包括 gzip、bzip2、xz)指定为源文件,Docker 会自动将归档文件 unpack
## 如果使用URL指定归档文件,那么 Docker 不会将其 unpack
## 如果目的位置不存在,Docker 会自动创建出来
04 COPY
# 作用:与 ADD 的功能类似,但是不会自动处理归档文件
# 注意:不能对构建上下文外的文件或目录执行 COPY 操作
05 LABEL
# 作用:为镜像添加元数据,元数据是键值对的形式
# 范例1:指定一个元数据
LABEL version="1.0"
# 范例2:指定多个元数据,推荐使用这种方式,避免因元数据指令创建过多镜像层
LABEL location="New York" type="Data Center" role="Web Server"
# 查看镜像的元数据
sudo docker inspect '{{ .ContainerConfig.Labels }}' jamtur01/nginx