飞天使-docker知识点2-dockerfile构建镜像

文章目录

        • [dockerfile 简介](#dockerfile 简介)
        • [dockerfile 构建实例1](#dockerfile 构建实例1)
        • [dockerfile 直接构建nginx 本地镜像](#dockerfile 直接构建nginx 本地镜像)
        • [docke tag](#docke tag)
dockerfile 简介
复制代码
DockerFile 可以说是一种可以被 Docker 程序解释的脚本,DockerFile 是由一条条的命令组成的,每条命令对应 linux 下面的一条命令,Docker 程序将这些DockerFile 指令再翻译成真正的 linux 命令,其有自己的书写方式和支持的命令,Docker 程序读取 DockerFile 并根据指令生成 Docker 镜像,相比手动制作镜像的方式,DockerFile 更能直观的展示镜像是怎么产生的,有了写好的各种各样DockerFile 文件,当后期某个镜像有额外的需求时,只要在之前的 DockerFile添加或者修改相应的操作即可重新生成新的 Docke 镜像,避免了重复手动制作镜像的麻烦,具体如下
https://docs.docker.com/engine/reference/builder/

ADD
COPY
ENV
EXPOSE
FROM
LABEL
STOPSIGNAL
USER
VOLUME
WORKDIR
RUN
dockerfile 构建实例1
复制代码
From centos
MAINTAINER light 123456@qq.com

RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm && \
    yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop

ADD nginx-1.16.1.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.16.1 && ./configure --prefix=/usr/local/nginx --with-http_sub_module && make && make install

RUN cd /usr/local/nginx/ && \
    echo "test nginx page" > /usr/local/nginx/html/index.html && \
    useradd nginx -s /sbin/nologin && \
    ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx

ADD nginx.conf /usr/local/nginx/conf/nginx.conf

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]
dockerfile 直接构建nginx 本地镜像
复制代码
docker build -t nginx:v1 .


cat Dockerfile 

FROM centos:7.8.2003

maintainer  "jack 2973707860@qq.com"

RUN yum install -y epel-release && yum install -y vim wget tree  lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop

#COPY nginx-1.16.1.tar.gz /usr/local/src/
ADD nginx-1.16.1.tar.gz /usr/local/src/

RUN cd /usr/local/src/nginx-1.16.1 && ./configure --prefix=/apps/nginx --with-http_sub_module && make && make install
RUN useradd nginx -u 2022
ADD nginx.conf /apps/nginx/conf/nginx.conf
ADD code.tar.gz /data/nginx/html
#ADD run_nginx.sh /apps/nginx/sbin/run_nginx.sh
#RUN chmod a+x /apps/nginx/sbin/run_nginx.sh
EXPOSE 80 443

#RUN useradd m43
#USER m43
#WORKDIR /opt
#run mkdir 123
#WORKDIR 123


#ENTRYPOINT ["/apps/nginx/sbin/run_nginx.sh"]

ENTRYPOINT ["/apps/nginx/sbin/nginx"]
CMD  ["-g","daemon off;"]


[root@light-test all-in-one[]# docker run -it -d -p 8888:80 nginx:v1
[root@light-test all-in-one[]# curl 127.0.0.1:8888
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>马哥教育</title>
	</head>
	<body>
	<h1>测试页面</h1>
	</body>
	</html>
docke tag
复制代码
docker tag 命令用于给一个现有的 Docker 镜像打标签,为镜像添加一个可识别的标识符。使用标签可以方便地对镜像进行分类和区分,也可以使多个标签指向同一个镜像。

docker tag 命令的语法如下:

docker tag <镜像名称>:<标签> <新镜像名称>:<新标签>
其中,<镜像名称> 是已有的镜像名称,<标签> 是已有的标签,<新镜像名称> 是为镜像设置的新名称,<新标签> 是为新镜像设置的新标签。

例如,如果有一个名为 myimage:latest 的镜像,您可以使用 docker tag 命令为该镜像添加一个新的标签:

docker tag myimage:latest myimage:v1.0
这将在 myimage:latest 镜像的基础上创建一个新的镜像 myimage:v1.0。

通过为镜像打上不同的标签,您可以实现对同一镜像的版本管理、发布和回滚。另外,使用不同的标签还可以方便地识别和管理具有不同用途的镜像。

请注意,docker tag 命令只是为已有的镜像打标签,不会创建新的镜像层或复制镜像。因此,它的执行速度通常很快。

本文参考马哥教育文档

相关推荐
黎陌MLing2 分钟前
docker安装管理TDengine
docker·容器·tdengine
HIT_Weston21 分钟前
95、【Ubuntu】【Hugo】搭建私人博客:_default&partials
linux·运维·ubuntu
实心儿儿1 小时前
Linux —— 基础开发工具5
linux·运维·算法
oMcLin1 小时前
如何在SUSE Linux Enterprise Server 15 SP4上通过配置并优化ZFS存储池,提升文件存储与数据备份的效率?
java·linux·运维
SelectDB2 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
❀͜͡傀儡师2 小时前
docker部署Arcane容器可视化管理平台
运维·docker·容器
老姚---老姚2 小时前
docker常用命令
运维·docker·容器
深圳安锐科技有限公司2 小时前
边坡倾斜自动化监测 倾角仪 如何通过安锐云查看监测曲线?
运维·视觉检测·实时监测·自动化监测·结构健康监测·倾斜角度监测·倾角传感器
咕噜企业分发小米4 小时前
有哪些开源的直播云服务器安全防护方案?
运维·服务器·云计算
C_心欲无痕5 小时前
nginx - 开启 gzip 压缩
运维·前端·nginx