Skip to content
On this page

制作nginx镜像

提醒

dockerfile编写教程

编辑Dockerfile文件填入以下内容: vi Dockerfile

dockerfile
FROM centos:7
# 安装必要的依赖包
RUN yum update -y && \
    yum install -y epel-release && \
    yum install -y nginx && \
    yum clean all
# 复制自定义的 Nginx 配置文件,这个实验应该不需要所以注释掉了
# COPY nginx.conf /etc/nginx/nginx.conf
# 复制自定义的网页内容,这个index.html文件路径与dockerfile文件路径相同(同一目录下)
COPY index.html /usr/share/nginx/html/index.html
# 暴露 Nginx 默认的 HTTP 端口
EXPOSE 80
# 启动 Nginx 服务
CMD ["nginx", "-g", "daemon off;"]

index.html编写教程

编辑index.html文件填入以下内容: vi index.html

html
<!DOCTYPE html>
<html>
<head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            text-align: center;
            padding: 150px;
            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-size: 20px;
        }
    </style>
</head>
<body>
<p>这里修改为你需要展示的内容</p>
<p>这里修改为你需要展示的内容</p>
</body>
</html>

编译dockerfile

编辑命令为:

docker build -t $image_name:$tag .

比如我现在将它编译为nginx:v1镜像

docker build -t nginx:v1 .

查看镜像

docker images

dockerfile文件内容模板

非常抱歉忽略了这些指令。以下是包含这些指令的更全面的 Dockerfile 模板:

dockerfile
# 基础镜像
FROM base_image:tag

# 设置维护者信息
LABEL maintainer="Your Name <your_email@example.com>"

# 设置工作目录
WORKDIR /app

# 复制文件到容器中
COPY source_file destination_file

# 添加文件到容器中(可从 URL 下载并解压缩)
ADD source destination

# 暴露端口
EXPOSE port

# 定义环境变量
ENV key=value

# 设置卷(挂载点)
VOLUME /path/to/volume

# 设置用户
USER username

# 定义构建参数
ARG build_arg=value

# 执行命令
RUN command1 \
    && command2 \
    && command3

# 运行时指令,当容器启动时执行
ENTRYPOINT ["entrypoint_command", "arg1", "arg2"]

# 启动容器时运行的命令,覆盖 ENTRYPOINT
CMD ["command", "arg1", "arg2"]

# 添加其他依赖项
# ...

# 添加其他配置和指令
# ...

在这个模板中,我加入了以下指令的示例和注释:

  • MAINTAINER:设置维护者信息。
  • ADD:将文件复制到容器中,并可以从 URL 下载并解压缩文件。
  • COPY:将文件复制到容器中。
  • VOLUME:设置卷(挂载点)。
  • ENV:定义环境变量。
  • USER:设置容器运行时的用户名或 UID。
  • ARG:定义构建参数,可用于在构建过程中传递参数。

请根据您的实际需求和项目要求,使用适当的值替换模板中的占位符。您还可以根据需要添加其他指令和配置来满足您的应用程序的构建和运行要求。如果您有其他问题,请随时提问。

镜像的导入导出

镜像的导出

shell
docker image save nginx:v1 -o nginx_v1.tgz        #-o === >

SCP命令

shell
scp nginx_v1.tgz  node:/root/

镜像的导入

shell
docker image load -i nginx_v1.tgz                  #-i === <