飞天使-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 命令只是为已有的镜像打标签,不会创建新的镜像层或复制镜像。因此,它的执行速度通常很快。

本文参考马哥教育文档

相关推荐
LKAI.21 分钟前
搭建Elastic search群集
linux·运维·elasticsearch·搜索引擎
青木沐2 小时前
Jenkins介绍
运维·jenkins
WTT00112 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
苹果醋33 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
日记跟新中3 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
唐小旭3 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
明 庭3 小时前
Ubuntu下通过Docker部署NGINX服务器
服务器·ubuntu·docker
BUG 4043 小时前
Linux——Shell
linux·运维·服务器
大霞上仙4 小时前
Linux 多命令执行
linux·运维·服务器