一、Dokerfile简介
Dockerfile 是一个用来自动构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
建议存放在/opt/dockerfile中,如创建centosXX的镜像,则创建/opt/dockerfile/centosXX/Dockerfile
1 Dockerfile的简单使用
创建一个开启sshd服务的centos6.9镜像
创建yum源文件,用于拷贝到centos6.9镜像中
创建Dockerfile文件/opt/dockfile/centos6.9_ssh/Dockerfile,内容如下:
PS:RUN的执行过程:创建临时容器,执行命令,提交成临时镜像,删除临时容器,重复此步骤。
构建镜像
PS:最后传入的是包含Dockerfile的文件夹,区分大小写,可以用”.”代替
验证镜像是否正常
PS:最后不用接命令,将自动执行CMD指定的命令
2 小案例
创建centos6.9 + ssh + nginx的Dockerfile
编写Dockerfile
构建镜像
测试使用
二、Docker指令
命令 |
说明 |
FROM |
基于那个镜像来构建 |
MAINTAINER |
镜像的创建者 |
ENV |
设置环境变量 |
ADD |
添加宿主机文件到容器里,有需要解压的文件会自动解压 |
COPY |
添加宿主机文件到容器里 |
WORKDIR |
切换工作目录 |
EXPOSE |
开放可用端口 |
CMD |
容器启动后执行的命令,可被docker run指定的命令覆盖 |
ENTRYPOINT |
容器启动后执行的命令,但不回被docker run指定的命令覆盖,如需覆盖,需要加–entrypoint参数 |
VOLUME |
创建挂载卷,将宿主机的目录挂载到容器里 |
三、案例:Dockerfile构建可道云容器
项目:
可道云网盘kodexplorer
环境:
httpd+php或者nginx+php
php所需模块:php5.5以上
基础镜像:centos:7.9
项目下载地址: http://static.kodcloud.com/update/download/kodexplorer4.37.zip
项目官网:https://kodcloud.com/download/
1 手工部署一遍
写Dockerfile前自己手动部署一遍,主要是nginx + php的搭建,参考博客
https://cloud.tencent.com/developer/article/1015237
修改nginx.conf
修改php-fpm.conf
修改www.conf
修改php.ini
2 Dockerfile部署
文件存放
编写Dockerfile
构建镜像
运行容器
进入容器,并运行初始化命令
测试访问: