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网络环境,并启动容器
通过浏览器进行访问测试
构建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 镜像制作与打包部署内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: C# 通过Socket读取大量数据的示例
下一篇: Docker初级网络端口映射的配置