欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Docker的镜像制作与整套项目一键打包部署的实现

程序员文章站 2022-09-06 16:52:53
dockerfile常用指令介绍 指令 描述 from 构建的新镜像是基于哪个镜像。例如:from centos:6...

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  /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  || exit 1
arg 在构建镜像时指定一些参数。例如:arg user

利用dockerfile编写简单的nginxweb镜像

构建php网站平台镜像

创建nginx-php网络环境,并启动容器

通过浏览器进行访问测试

Docker的镜像制作与整套项目一键打包部署的实现

构建java网站环境镜像

Docker的镜像制作与整套项目一键打包部署的实现

整套项目一键打包部署

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 镜像制作与打包部署内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!