一、Dockerfile指令

### --- dockerfile常用参数

~~~ FROM:继承基础镜像
~~~ MAINTAINER:镜像制作作者信息
~~~ RUN:用来执行shell命令
~~~ EXPOSE:暴露端口号
~~~ CMD:启动容器默认执行的命令
~~~ ENTRYPOINT:启动容器真正执行的命令
~~~ # CMD和ENTRYPOINT必须要有一个,CMD可以被覆盖,如果有ENTRYPIOINT的话,CMD就是ENTRYPIOINT的参数。
~~~ # ENTRYIOINT——>对应k8s中:COMMAND
~~~ # CMD——>对应k8s中:arg
~~~ VOLUME:创建挂载点:相当于匿名的挂载点。
~~~ ENV:配置环境变量
~~~ ADD:复制文件到容器;若是复制tar包它会帮助解压。
~~~ WORKDIR:设置容器的工作目录
~~~ USER:容器使用的用户

二、Dokerfile:FROM和RUN参数

### --- 创建dockerfile:
~~~ 创建dockerfile;FROM和RUN参数;

[root@k8s-master01 ~]# mkdir dockerfiles
[root@k8s-master01 dockerfiles]# vim Dockerfile
FROM centos:8

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

RUN useradd yanqi
RUN mkdir /opt/yanqi
### --- 通过dockerfile构建镜像
~~~ 构建镜像

[root@k8s-master01 dockerfiles]# docker build -t centos:user .
Sending build context to Docker daemon 2.048kB
Step 1/5 : FROM centos:8
---> 300e315adb2f
Successfully built 1997dc655b9f
Successfully tagged centos:user
### --- 运行容器
~~~ 调试的时候加入--rm参数,不然会产生很多调试残留痕迹。

[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:user bash
### --- 查看创建的资源

~~~ # 查看添加的用户
[root@8421e7b75b54 /]# cat /etc/passwd
yanqi:x:1000:1000::/home/yanqi:/bin/bash
~~~     # 查看创建的目录

[root@8421e7b75b54 ~]# cd /opt/yanqi/
### --- 将镜像推送到hub仓库
~~~ 若是测试没有问题;可以把镜像推送到hub仓库中

[root@k8s-master01 dockerfiles]# vim Dockerfile
FROM centos:8

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

#RUN useradd yanqi
#RUN mkdir /opt/yanqi
RUN useradd yanqi && /opt/yanqi // RUN命令可以这样写,这样少一层占用,占用的存储大小会低一点











Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart

                                                                                                                                                   ——W.S.Landor