Dockerfile常用指令介绍
指令 描述 FROM 构建的新镜像是基于哪个镜像。例如:FROM centos:6 MAINTAINER 镜像维护者姓名或邮箱地址。例如:MAINTAINER Mr.chen RUN 构建镜像时运行的Shell命令。例如:RUN [“yum”,”install”,”httpd”] 或者RUN yum install httpd CMD 运行容器时执行的Shell命令(可以被运行时传递的参数覆盖)。例如:CMD [“-c”,”/start.sh”] 或者CMD [“/usr/sbin/sshd”,”-D”]或者CMD /usr/sbin/sshd -D EXPOSE 声明容器运行的服务端口。例如:EXPOSE 80 443 ENV 设置容器内环境变量。例如:ENV MYSQL_ROOT_PASSWORD 123456 ADD 拷贝文件或目录到镜像(可以自动解压缩或者下载) 例如:ADD [“src”,”dest”]或者ADD https://xxx.com/html.tar.gz /var/www/html 或者:ADD html.tar.gz /var/www/html COPY 拷贝文件或目录到镜像(不能自动解压缩)。例如:COPY ./start.sh /start.sh ENTRYPOINT 运行容器时执行的Shell命令(不能被运行时传递的参数覆盖)。例如:ENTRYPOINT [“/bin/bash”,”-c”,”/start.sh”] 或者ENTRYPOINT /bin/bash -c “/start.sh” VOLUME 指定容器挂载点到宿主机自动生成的目录或其他容器 例如:VOLUME [“/var/lib/mysql”] USER 为RUN,CMD和ENTRYPOINT执行命令指定运行用户 例如:USER Mr_chen WORKDIR 为RUN,CMD,ENTRYPOINT,COPY和ADD设置工作目录(指定进入容器中默认被切换的目录)。 例如:WORKDIR /data HEALTHCHECK 健康检查。例如:HEALTHCHECK –interval=5m –timeout=3s –retries=3 CMD curl -f http://localhost/ || exit 1 ARG 在构建镜像时指定一些参数。例如:ARG user利用Dockerfile编写简单的nginxWeb镜像
构建PHP网站平台镜像
创建nginx-php网络环境,并启动容器
通过浏览器进行访问测试
构建JAVA网站环境镜像
整套项目一键打包部署
Docker Compose用法
Compose是一个定义和管理多容器的工具,使用Python语言编写。使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像,数据卷,网络,映射端口等;然后一条命令管理所有服务,比如启动,停止,重启等
安装
YAML文件格式及编写注意事项
YAML是一种标记语言很直观的数据序列化格式,可读性高。类似于XML数据描述语言,语法比XML简单的很多
YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号括起来,hash用花括号括起来
YAML文件格式注意事项:
不支持制表符tab键缩进,需要使用空格缩进 通常开头缩进2个空格 字符后缩进1个空格,如冒号,逗号,横杆 用井号注释 如果包含特殊字符用单引号引起来 布尔值(true,false,yes,no,on,off)必须用引号括起来,这样分析器会将他们解释为字符串。配置文件常用字段
字段 描述 build 下级字段dockerfile:指定Dockerfile文件名 下级字段context;构建镜像上下文路径 image 指定镜像 command 执行命令,覆盖默认命令 container_name 指定容器名称 deploy 指定部署和运行服务相关配置,只能在Swarm模式使用 environment 添加环境变量 networks 加入网络,引用顶级networks下条目 ports 暴露端口,与-p相同,但端口不能低于60 volumes 挂载宿主机路径或命名卷。如果是命名卷在顶级volumes定义卷名称 restart 重启策略,默认no,always | on-failure | unless-stopped hostname容器主机名
常用命令
字段 描述 build 重新构建服务 ps 列出容器 up 创建和启动容器 exec 在容器里执行命令 scale 指定一个服务容器启动数量 top 显示容器进程 logs 查看容器输出 down 删除容器,网络,数据卷和镜像 stop/start/restart 停止/启动/重启服务一键部署LNMP网站平台
一键部署Nginx反向代理Tomcat集群实战
每个容器安装JAVA环境,会使容器过大,所以用本地java环境挂在到tomcat容器内,这样节省空间
到此这篇关于Docker的镜像制作与整套项目一键打包部署的实现的文章就介绍到这了,更多相关Docker 镜像制作与打包部署内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/ywrj/p/9594869.html