Dockerfile编写镜像

每个Dockerfile的第一条指令都应该是FROM,FROM指令指定一个已经存在的镜像后续指令都将基于该镜像进行,这个镜像被称为基础镜像(base iamge)。在上面的Dockerfile示例中,我们指定了alpine:3.14作为镜像的基础镜像,基于这个Dockerfile构建的新镜像将以alpine:3.14操作系统为基础,在运行一个容器时,必须要指明是基于哪个基础镜像在进行构建。

FROM指令的格式如下:

FROM [--platform=]  [AS] 
OR
FROM [--platform=] [:] [AS] 
OR
FROM [--platform=] [@] [AS]

FROM指令表示初始化一个新构建并作为后续指令的基本映像,所以一个有效的Dockerfile文件必须以FROM指令开始,为个镜像也必须是一个有效镜像,可以从一些公用库中来获取相应的镜像。

但ARG可以放在FROM指令前面,关于ARG和FROM如何交互将会在后面介绍。

FROM可以在单个Dockerfile中多出现,这样可以创建多个映像,或将一个构建阶段用作另一个构建阶段的依赖库。

FROM指令可以支持由其上一个指令ARG指令声明的变量,并传递给FROM指令使用。

以下是几种镜像的编写:

php-apache_dockerfile

#基础镜像
FROM php:7.4-apache

#环境变量,用于登录MySQL
ENV MYSQL_ROOT_PASSWORD 6666

#下载php扩展mysqli,用于对数据库进行操作
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list \
&& apt-get clean\
&& apt-get update\
&&apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) mysqli

MySQL_dockerfile

#基础镜像
FROM mysql

#作者信息
MAINTAINER by (这里可自行填写但所有镜像必须用一样的ID)

#设置root密码
ENV MYSQL_ROOT_PASSWORD 6666

#设置不可免密登录
ENV MYSQL_ALLOW_EMPTY_PASSWORD no

#为docker_mysql创建数据库
ENV MYSQL_DATABASE docker_mysql

#创建新用户
ENV MYSQL_USER=docker
ENV MYSQL_PASSWORD=123456

phpmyadmin_dockerfile

#基础镜像
FROM phpmyadmin/phpmyadmin

#作者信息
MAINTAINER by (这里可自行填写但所有镜像必须用一样的ID)

这里是几个常用的镜像,仅供大家可以参考,如有做的不好,欢迎大家私信!感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值