Dockerfile的编写

Dockerfile的编写

#在centos上安装nginx
FROM centos
#标明著作人的名称和邮箱
MAINTAINER jiabuli 649917837@qq.com
#测试一下网络环境
RUN ping -c 1 www.baidu.com
#安装nginx必要的一些软件
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
#把nginx安装包复制到/usr/src/目录下
ADD nginx-1.15.8.tar.gz /usr/src/
#切换到/usr/src/nginx-1.15.8编译并且安装nginx
RUN cd /usr/src/nginx-1.15.8 \
    && mkdir /usr/local/nginx \
    && ./configure --prefix=/usr/local/nginx && make && make install \
    && ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ \
    && nginx
#删除安装nginx安装目录
RUN rm -rf /usr/src/nginx-nginx-1.15.8
#对外暴露80端口
EXPOSE 80
#启动nginx
CMD ["nginx", "-g", "daemon off;"]

上面的注释已经讲的非常清楚,其实不难发现,上面的例子就是类似于在centos系统上安装一个nginx的的一个过程,因此编写Dockerfile构建镜像就和在Linux上安装软件的流程几乎是一模一样的。所以我们在编写Dockerfile来构建镜像时,可以先思考在Linux上安装该软件的流程,再用Dockerfile提供的指令转化到Dockerfile中即可。

用Dockerfile构建镜像

用Dockerfile的核心在于编写Dockerfile,但是编写完之后我们需要知道怎么使用Dockerfile来构建镜像,下面以构建nginx镜像为例来简要说明构建流程

3.1 上传安装包

首先我们需要把要构建的软件安装包上传到服务器中,我们可以在服务器目录上创建一个专门的文件夹,如:/var/nginx_build,然后把从nginx官网下载的nginx-1.15.8.tar.gz安装包上传到这个目录里。

3.2 编写Dockerfile

如何编写nginx的Dockerfile上面已经详细介绍,现在我们只需把编写好的Dockerfile上传到/var/nginx_build目录下,当然你也可以在服务器上直接编写Dockerfile,但是要记得一定保证Dockerfile文件和安装包在一个目录下。

3.3 运行构建命令构建

docker build 命令用于使用 Dockerfile 创建镜像。
格式:

docker build [OPTIONS] PATH | URL | -
OPTIONS有很多指令,下面列举几个常用的:

--build-arg=[] :设置镜像创建时的变量;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--rm :设置镜像成功后删除中间容器;
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;
因此我们构建nginx可以用以下命令:
docker build -t nginx:v1.0 .

当Dockerfile和当前执行命令的目录不在同一个时,我们也可以指定Dockerfile,如

docker build -f /var/nginx_build/Dockerfile .
执行命名之后,会看到控制台逐层输出构建内容,直到输出两个Successfully即为构建成功。

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页