一、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命令可以这样写,这样少一层占用,占用的存储大小会低一点