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

本文参考马哥教育文档

相关推荐
汀、人工智能2 分钟前
修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)
docker·容器
吃面不喝汤6627 分钟前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Rookie_explorers33 分钟前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
学习向前冲37 分钟前
AD域控服务器
运维·服务器
Leighteen1 小时前
Docker常用命令
docker·容器
hgdlip1 小时前
查看ip地址的方法有几种?探索多样方法
运维·服务器·ip地址
丶21361 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
codelife3211 小时前
在Docker容器中执行命令
容器
神即道 道法自然 如来1 小时前
Jenkins怎么设置每日自动执行构建任务?
运维·jenkins
petaexpress1 小时前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes