|NO.Z.00113|——————————|^^ 制作 ^^|——|KuberNetes&Docker操作.V11|——|docker.v01|制作镜像|

一、镜像制作
### --- 镜像制作概述

~~~     测试环境使用centos作为测试镜像制作
~~~     生产环境是不可以使用centos来制作镜像;可以使用Alpine制作镜像;
~~~     是docker官方建议的制作镜像的方案,或者busybox;
~~~     但是busybox是有一些bug的,而且不容易修复;scratch使用go语言是比较好的。
~~~     制作基础镜像的话,前提是比较小。
二、制作镜像
### --- 基于apline制作镜像

~~~     # 下载alpine镜像版本
[root@k8s-master01 ~]# docker pull alpine:3.6
 
~~~     # 选择小镜像
[root@k8s-master01 ~]# cd dockerfiles/
~~~     # 基于alpine创建镜像

[root@k8s-master01 dockerfiles]# vim Dockerfile 
#FROM centos:8
FROM alpine:3.8                             # 基于alpine创建镜像
LABEL maintainer="test dockerfile"
LABEL test=dockerfile

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

RUN adduser -D yanqi                        # 创建用户;apline下创建用户的命令发生了变化时adduser
RUN mkdir -p /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  alpine:workdir .
Sending build context to Docker daemon  5.632kB
Step 1/13 : FROM alpine:3.8
 ---> c8bccc0af957
Step 7/13 : RUN adduser -D yanqi
 ---> Using cache
 ---> e0083acce2f1
Step 8/13 : RUN mkdir -p /opt/yanqi
 ---> Running in ff93c5232907
~~~     # 查看下载的alpine镜像信息
~~~     注:制作的镜像容量是非常小的。
~~~     注:其实基础镜像是不需要我们自己去做的。
~~~     注:比如当前的语言是golang的,可以选择基于apline做的基础镜像来部署我们的应用程序。
~~~     注:因为你的镜像做的怎么好,也没有官方做的基础镜像好。
~~~     注:https://github.com/_/golang?tab=tags

[root@k8s-master01 dockerfiles]# docker images
REPOSITORY                                                        TAG       IMAGE ID       CREATED          SIZE
alpine                                                            workdir   68946b0fd233   51 seconds ago   4.42MB
三、怎么去选择镜像
### --- 比如说有一个Java的环境,我们怎么去选择基础镜像
### --- 基于镜像选择,优先选择Alpine、busybox、scratch、Debian
### --- 若是用到glibc:可以选择node:slime  Python:slime  go语言用到net包时,也会用到glibc。glibc是一个综合。

~~~     比如说node.js或者PHP的镜像
~~~     https://hub.docker.com/——>搜索node——>找到node.js的官方镜像——>Tags——>slim或者apline镜像都是可以的——>我们没有必要从0去构建基础镜像
~~~     可以使用官方的装过PHP,node.js,JDK环境的。使用它的镜像做一些修改,作为自己的镜像。
~~~     slime镜像:有些系统开发的时候调用了系统的库;slime镜像是有安装一些centos或者Redhat的jdk等的库,而alpine是没有装的。但是我们要用到这些基础包就是用slime镜像。或者busybox;但是alpine镜像就比较痛苦。
~~~     在使用maven编译的时候,有可能会用到glibc,maven也有机遇alpine的,

 
 
 
 
 
 
 
 
 

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

 

 

posted on   yanqi_vip  阅读(67)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示