|NO.Z.00108|——————————|CloudNative|——|KuberNetes&Docker操作.V06|——|dockerfile.v01|from&run|
一、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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通