当前位置:首页 > Docker > Dockerfile构建镜像

Dockerfile构建镜像

在使用docker的过程中,除了利用官方已经做好的镜像之外,很多时候还需要根据实际的需求定制自己的镜像。docker镜像的制作主要有两种方式:

1)通过docker commit制作镜像,运行一个基础镜像,然后在基础镜像上进行软件的安装和配置文件的修改。然后提交变动到新的镜像。
2)通过docker build制作镜像,按顺序执行dockerfile中命令,然后生成一个新的镜像。

Dockerfile的编写格式如下:

基础镜像信息
维护者信息
镜像操作指令
容器启动时执行的指令

Dockerfile编写完成之后,用下面的命令构建docker的镜像:

docker build Dockerfile文件的路径

现在总结Dockerfile常用的命令具体含义:

FROM 基础镜像
MAINTAINER 镜像创建者的信息
USER    使用哪个用户启动容器
RUN     安装软件,执行系统命令
ADD     复制源文件到容器指定的目录,源文件的目录一般是Dockerfile文件所在的目录
CMD     启动容器时执行命令
EXPOSE  容器内部开启的端口
WORKDIR 切换目录,相当于cd命令

下面通过Dockerfile的方式构建一个nginx的镜像。
1.Dockerfile文件名必须为Dockerfile

#Dockerfile文件路径
[root@kvm-server01 ~]# mkdir -p /data/dockfile/nginx
[root@kvm-server01 ~]# echo "www.zmzblog.com" >> /data/dockfile/nginx/index.html
[root@kvm-server01 ~]# vim /data/dockfile/nginx/Dockerfile
#This docker file
#Version:v1
#Author:sfzhang
#Base image
FROM centos 
#Maintainer
MAINTAINER sfzhang admin@zmzblog.com
#Commands
RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y nginx
ADD index.html /usr/share/nginx/html/index.html
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx"]

2.通过Dockerfile快速构建docker镜像。

[root@kvm-server01 ~]# docker build -t zmz/zmznginx:v3 /data/dockfile/nginx/
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM centos
 ---> 98d35105a391
Step 2 : MAINTAINER sfzhang admin@zmzblog.com
 ---> Using cache
 ---> 24afe15bf749
Step 3 : RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
 ---> Using cache
 ---> 1fce7f0e78c1
Step 4 : RUN yum install -y nginx
 ---> Using cache
 ---> de6912f647ee
Step 5 : ADD index.html /usr/share/nginx/html/index.html
 ---> Using cache
 ---> c10d9d33e664
Step 6 : RUN echo "daemon off;" >> /etc/nginx/nginx.conf
 ---> Using cache
 ---> ce1dbd1fa1e2
Step 7 : EXPOSE 80
 ---> Using cache
 ---> 6052568a9cf1
Step 8 : CMD nginx
 ---> Running in e0beb3e125a1
 ---> 48ca9bcc9222
Removing intermediate container e0beb3e125a1
Successfully built 48ca9bcc9222

3.查看images镜像。

[root@kvm-server01 ~]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
zmz/zmznginx                  v3                  48ca9bcc9222        45 seconds ago      373.4 MB
zmz/zmznginx                  v2                  9ab2e63e4246        24 hours ago        354.1 MB
zmz/zmznginx                  v1                  f36f429763a9        24 hours ago        354.1 MB
docker.io/centos              latest              98d35105a391        7 days ago          192.5 MB
hub.c.163.com/library/nginx   latest              db079554b4d2        5 weeks ago         181.8 MB

4.新建一个容器。

[root@kvm-server01 ~]# docker run --name nginx03 -d -p 8888:80 zmz/zmznginx:v3
ff0b4fec96f2ac7baa70738a553b3b30a2789a382f98515e0ae918d13482f113

5.测试通过Dockerfile构建镜像是否成功。

[root@kvm-server01 ~]# curl http://192.168.100.100:8888
www.zmzblog.com
  • «
  • »
  • 朴实的追梦者 作者:
    除非注明,本文原创:朴实的追梦者,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zmzblog.com/docker/ddockerfile-build-image.html

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注