CC00110.CloudKubernetes——|KuberNetes&Docker操作.V08|——|dockerfile.v03|

一、dockerfile:ENV参数
### --- 创建dockerfile

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

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2
ENV env1=test1 env2=test2                   # 也可以这么写

RUN useradd yanqi
RUN mkdir /opt/yanqi

#ENTRYPOINT ["echo"]

CMD echo "$env1 env2"
#RUN useradd yanqi && /opt/yanqi
### --- 构建并运行容器

~~~     在做基础镜像的时候可以这么写;但是在做应用启动的时候,
~~~     在做应用的时候变量不要写在Dockerfile中,
~~~     可以使用k8s的资源文件或者docker的-e参数注入进入,这样就不会产生这么多层。
~~~     # 构建镜像
[root@k8s-master01 dockerfiles]# docker build -t centos:env .

~~~     # 运行镜像
[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:env
test1 env2
二、Dockerfile:ADD参数
### --- 创建一个index文件并打包

[root@k8s-master01 dockerfiles]# echo 123 > index.html
[root@k8s-master01 dockerfiles]# tar -zcvf index.html.tar.gz index.html
### --- 创建dockerfile

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

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2
ENV env1=test1 env2=test2

RUN useradd yanqi
RUN mkdir /opt/yanqi

#ENTRYPOINT ["echo"]

ADD ./index.html.tar.gz /opt/

CMD echo "$env1 env2"
#RUN useradd yanqi && /opt/yanqi
### --- 构建镜像并运行容器
~~~     # 构建镜像

[root@k8s-master01 dockerfiles]# docker build -t centos:add .
Step 9/10 : ADD ./index.html.tar.gz /opt/
 ---> 402a26203c03
~~~     # 运行容器
[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:add bash

~~~     # 验证和创建的文件是否一致
[root@53ed2fe7a157 /]# ls opt/
index.html  yanqi                   // 可以看到把这个tar包解压了,默认是解压的。
三、Dockerfile:COPY参数
### --- 创建dockerfile

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

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2
ENV env1=test1 env2=test2

RUN useradd yanqi
RUN mkdir /opt/yanqi

#ENTRYPOINT ["echo"]

ADD ./index.html.tar.gz /opt/
COPY ./yanqi /opt/yanqitest
CMD echo "$env1 env2"
#RUN useradd yanqi && /opt/yanqi
### --- 构建镜像并运行容器

~~~     注:拷贝过来只有文件,而没有yanqi目录;这是dockerfile的机制,
~~~     若是想要拷贝目录只能创建目录,或者创建的时候在加入一层目录。
~~~     # 构建镜像
[root@k8s-master01 dockerfiles]# docker build -t centos:add .
Step 10/11 : COPY ./yanqi /opt/yanqitest/
 ---> 1b06fc990b49
 
~~~     # 运行容器
[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:add bash
[root@1eda602eb3ba /]# ls /opt/yanqitest/
Dockerfile
### --- copy参数说明

~~~     文件必须放在执行docker build的当前目录下,它是不会使用绝对路径的
~~~     # 拷贝文件的时候是不会帮你解压的

[root@k8s-master01 dockerfiles]# vim Dockerfile 
COPY ./index.html.tar.gz /opt/yanqitest
Step 10/11 : COPY ./index.html.tar.gz /opt/yanqitest/
 ---> 493ea0d552d5
~~~     # 运行容器
[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:add bash

~~~     # 查看拷贝进来的文件是否解压
[root@a1f609a7c62d /]# ls /opt/yanqitest/   
index.html.tar.gz                   // 拷贝是不会帮你解压的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值