docker 使用(五):dockerfile创建镜像

dockerfile介绍

在上一节中,直接在hub中找到了一个nginx加php的镜像,如果需要其他服务的镜像,需要自己来自作,制作的是使用dockerfile来进行。

这里还是以nginx+php,来构建自己的nginx和php版本。

dockerfile 文件的写法

以git上的一个例子:

https://github.com/kaushalkishorejaiswal/Docker-Centos-Nginx-PHP

看看dockerfile的代码:

############################################################
# Dockerfile to build CentOS,Nginx installed  Container
# Based on CentOS
############################################################

# Set the base image to Ubuntu
FROM centos:latest

# File Author / Maintainer
MAINTAINER Kaushal Kishore <kaushal.rahuljaiswal@gmail.com>

# Add the ngix and PHP dependent repository
ADD nginx.repo /etc/yum.repos.d/nginx.repo

# Installing nginx 
RUN yum -y install nginx

# Installing PHP
RUN yum -y --enablerepo=remi,remi-php56 install nginx php-fpm php-common

# Installing supervisor
RUN yum install -y python-setuptools
RUN easy_install pip
RUN pip install supervisor

# Adding the configuration file of the nginx
ADD nginx.conf /etc/nginx/nginx.conf
ADD default.conf /etc/nginx/conf.d/default.conf

# Adding the configuration file of the Supervisor
ADD supervisord.conf /etc/

# Adding the default file
ADD index.php /var/www/index.php

# Set the port to 80 
EXPOSE 80

# Executing supervisord
CMD ["supervisord", "-n"]

这里面dokerfile的指令也都比较简单,像ADD nginx.conf 是把本地的文件放到镜像中去。具体的dokerfile的命令可以参考更全的文档。

这里的功能是先建一个centos的镜像,然后在镜像中安装nginx和php并把相关的文件添加到镜像中。

创建镜像

运行build根据dockerfile的文件创建镜像:

docker build -t tbnp .

-t 后面跟为镜像的名称。

启动容器

跟之前的一样,启动一个nginx+php的容器,

docker run --name mynp -d -p 80:80 tbnp

php页面就可以访问了。

备份镜像和迁移

docker save -o centos_nginx.tar zlyang/nginx

centos_nginx.tar为保存到本地后的包名

如果在一台新机器还原docker镜像,只需要使用:

docker load --input centos_nginx.tar

就可以了。

PS: 如本文对您有帮助,不妨通过一下方式支持一下博主噢 ^_^

官方
微信
官方微信
Q Q
咨询
意见
反馈
返回
顶部