微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Dockerfile定制docker镜像

Docker Store上已经有很多官方的镜像我们可以直接使用,但是有时候我们的环境和镜像会有些许差异,在pull之后还需要做一些变更,如果是团队开发那操作起来就略显繁琐,如果能实现镜像的定制那就很方便了。

定制镜像有两种方式一种是从容器commit生成镜像,但是这种操作生成的镜像体积会比较大,很多无用的操作都会打包到镜像里面,下面介绍使用Dockerfile来定制镜像,以PHP镜像为例,假设我们需要定制MysqLi pdo redis等扩展,那可以在空白目录下创建一个Dockerfile文件

vi Dockerfile

然后输入如下内容

FROM PHP:7.3-fpm
RUN docker-PHP-ext-install pdo pdo_MysqL MysqLi \
&& pecl install redis-4.2.0 && docker-PHP-ext-enable redis

解释一下

FROM表示使用某个基础镜像,这里我们使用PHP:7.3-fpm
RUN 表示运行某个指令,其实就是安装对应扩展的指令,和我们运行镜像之后在容器内安装扩展是一样的,当然还有其他很多指令copY ADD ...等等

接下来需要构建镜像可以在当前目录下执行

docker build -t myPHP:latest .

这样就构建了一个myPHP:latest的镜像,可以推送到共有或者私有镜像仓库提供给团队成员使用

下面在举一个Nginx的例子,假设我们需要自己定义Nginx配置文件可以编辑好Nginx配置文件然后在Dockerfile中设置copY指令拷贝到镜像中去,下面给出Dockerfile的内容

FROM Nginx:latest
copY default.conf /etc/Nginx/conf.d/default.conf
copY index.PHP /usr/share/Nginx/html/index.PHP

这样就可以使用构建镜像的命令构建镜像,之后再run产生的容器中的配置文件就是定制后的镜像文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐