|NO.Z.00111|——————————|CloudNative|——|KuberNetes&Docker操作.V09|----------------------------------------------------|dockerfile.v04|workdir&user&volume|
阿新 • • 發佈:2022-03-29
[CloudNative:KuberNetes&二進位制升級.V09] [Applications.KuberNetes] [dockerfile|FROM/MAINTAINER/RUN/EXPOSE/CMD/ENTRYPOINT/VOLUME/ENV/ADD/WORKDIR/USER|]
一、Dockerfile:WORKDIR引數
### --- 建立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/yanqitest #ENTRYPOINT ["echo"] ADD ./index.html.tar.gz /opt/ COPY ./index.html.tar.gz /opt/yanqitest/ WORKDIR /opt/yanqi CMD pwd ; ls #RUN useradd yanqi && /opt/yanqi
### --- 構建映象 [root@k8s-master01 dockerfiles]# docker build -t centos:workdir . Step 11/12 : WORKDIR /opt/yanqitest ---> Running in 5fe980f90f6d Removing intermediate container 5fe980f90f6d ---> 3fa9782e2702 Step 12/12 : CMD pwd ; ls ---> Running in f679f7ffa9ad Removing intermediate container f679f7ffa9ad ---> d91a6af60fe4 Successfully built d91a6af60fe4 Successfully tagged centos:workdir
### --- 執行容器
~~~ 注:WORKDIR會經常應用到的。
[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:workdir
/opt/yanqi // 已切換到/opt/yanqi目錄下
index.html.tar.gz // 並且ls檢視到的檔案資訊
二、dockerfile:USER引數:使用容器執行的使用者
### --- 執行容器並檢視使用者 ~~~ # 執行容器 [root@k8s-master01 dockerfiles]# docker run -ti --rm centos:workdir bash
~~~ # 檢視使用者
[root@0044a0be125a yanqitest]# whoami
root //當前是root使用者
[root@0044a0be125a ~]# cat /etc/passwd
yanqi:x:1000:1000::/home/yanqi:/bin/bash // 可以使用yanqi使用者
### --- 建立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 ./index.html.tar.gz /opt/yanqitest/
WORKDIR /opt/yanqitest
USER 1000
CMD pwd ; ls
#RUN useradd yanqi && /opt/yanqi
### --- 構建映象
[root@k8s-master01 dockerfiles]# docker build -t centos:workdir .
Step 12/13 : USER 1000
---> Running in 4fc17065dfa3
Removing intermediate container 4fc17065dfa3
---> e3646ef7236c
Step 13/13 : CMD pwd ; ls
---> Running in bd9911d6f0d8
Removing intermediate container bd9911d6f0d8
---> 81a90d428efe
Successfully built 81a90d428efe
Successfully tagged centos:workdir
### --- 執行容器並檢視映象層
~~~ # 執行容器
[root@k8s-master01 dockerfiles]# docker run -ti --rm centos:workdir bash
[yanqi@28fd5f7e8e30 yanqitest]$ whoami
yanqi // 可以檢視到當前使用者已經切換為yanqi
~~~ # 推送到hub倉庫
~~~ 推送到映象倉庫,預設是推送到官方的地址,若是需要更改地址,需要前面加入域名
[root@k8s-master01 dockerfiles]# docker build -t xxx.com/centos:wordir .
~~~ # 檢視映象層
~~~ mone映象,可能是映象之前的層,有可能會用到這些層。這些層可以清理掉,不清理也沒有關係
[root@k8s-master01 dockerfiles]# docker images
xxx.com/centos wordir 81a90d428efe 2 minutes ago 210MB
三、dockerfile:VOLUME引數
### --- 建立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 ./index.html.tar.gz /opt/yanqitest/
WORKDIR /opt/yanqitest
#USER 1000
VOLUME /data
CMD pwd ; ls
#RUN useradd yanqi && /opt/yanqi
### --- 構建映象
[root@k8s-master01 dockerfiles]# docker build -t xxx.com/centos:wordir .
Step 12/13 : VOLUME /data
---> Running in 1af4e46a9d4a
Removing intermediate container 1af4e46a9d4a
---> 569977d829a1
Step 13/13 : CMD pwd ; ls
---> Running in b6de07554ab4
Removing intermediate container b6de07554ab4
---> f5fe200aa73c
Successfully built f5fe200aa73c
Successfully tagged xxx.com/centos:wordir
### --- 執行容器並檢視目錄
[root@k8s-master01 ~]# docker run -ti xxx.com/centos:wordir bash
~~~ # 可以檢視到目錄已經建立好了。
~~~ 注:用法:開發寫法習慣,不是基於容器開發的,而是把資料儲存目錄放在本地。
~~~ 注:解決方案一:使用mkdir去建立這個目錄。
~~~ 注:解決方案二:使用VOLUME去建立掛載目的目錄。
[root@1f40a3762b1d ~]# ls /data/
===============================END===============================
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
來自為知筆記(Wiz)