【docker】dockerfile、docker-compose(docker的脚本)

简介: 文章目录前言一、dockerfile(单机脚本)1.1 概念1.2 分层原理1.3 dockerfile核心四步

一、dockerfile(单机脚本)

1.1 概念

  • 通过脚本,生成一个镜像,并运行对应的容器,一次只能生成一个镜像

1.2 分层原理

  • 镜像分层
  • 每一层都会把上一层镜像作为父镜像
  • 可以将不同目录挂载到同一个虚拟文件系统下

  • 涉及技术
  • bootfs:利用宿主机的bootfs引导加载内核
  • rootfs:基于bootfs创建rootfs,含/etc,/bin等各类目录

1.3 dockerfile核心四步

  • FROM:指定基础镜像
  • MAINTAINER:编写维护者信息
  • RUN/ADD…:构成镜像的相关命令
  • CMD:容器启动时执行的命令

1.4 命令关键字

关键字 释义
FROM 指定基础镜像
MAINTAINER 编写维护者信息
RUN 新镜像中执行的命令
CMD 容器启动时执行的第一条命令
EXPOSE 容器暴露的端口号
ENV 指定环境变量
ADD 复制文件到镜像中(会解压/网页下载)
COPY 复制文件到镜像中(只能复制本地/不会自动解压)
VOLUME 创建一个挂载点
USER 指定容器运行的用户
WORKDIR 临时切换目录(不会生成镜像层数)
ONBULID 将生成的镜像作为一个基础镜像
HEALTHCHECK 启动健康检查功能

1.5 dockerfile安装LNMP

dockerfile安装lnmp


二、docker-compose(联机脚本)

2.1 概念

  • 一次能创建多个docker容器的工具,且不再需要shell来启动脚本,类似于一次运行多个dockerfile

2.2 注意事项

  • 注意大小写
  • 通过缩进表示层级关系
  • 不支持tab缩进
  • 符号的后方需要有空格

2.3 常用字段

字段 释义
build 指定dockerfile文件
dockerfile 构建docker的上下文(谁先谁后)
context 可以是dockerfile的路径或者仓库
image 指定镜像
command 执行命令
containername 指定容器名称
deploy 指定部署和运行服务的配置
environment 添加环境变量
networks 添加网络(顶级条目)
ports 暴露对应的端口号
volumes 挂载宿主机数据卷到容器
volumes_from 挂载旧容器的数据卷到新容器}
hostname 设置容器主机名
sysctls 设置容器内核参数
links 连接到另一个容器
restart 设置重启策略

2.4 常用命令

命令 释义
build 重新构建服务
ps 列出容器
exec 在容器里面执行命令
up 创建和启动容器
scale 指定一个服务器启动数量
top 显示容器进程
logs 查看容器输出日志
down 删除容器、网络、数据卷和镜像
stop/start/restart 停止/启动/重启服务

2.5 docker-compose安装lnmp(连接待更新)

三、思维导图

相关文章
|
2天前
|
Docker 容器
docker中使用Dockerfile自动创建数据卷
【10月更文挑战第12天】
10 5
|
14天前
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
30 4
|
1月前
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
282 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
1月前
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
104 20
|
15天前
|
缓存 Kubernetes 应用服务中间件
1分钟了解什么是docker和docker-compose?前后端必知必会技能GET啦
1分钟了解什么是docker和docker-compose?前后端必知必会技能GET啦
|
1月前
|
Docker 容器
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
|
2月前
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
2月前
|
缓存 Docker 容器
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
|
2月前
|
缓存 开发者 Docker
Dockerfile是Docker容器化过程中的核心组件,它允许开发者以一种可重复、可移植的方式自动化地构建Docker镜像
【8月更文挑战第19天】Dockerfile是构建Docker镜像的脚本文件,含一系列指令定义镜像构建步骤。每条大写指令后跟至少一个参数,按序执行,每执行一条指令即生成新的镜像层。常用指令包括:FROM指定基础镜像;RUN执行构建命令;EXPOSE开放端口;CMD指定容器启动行为等。优化策略涉及减少镜像层数、选择轻量基础镜像、利用缓存及清理冗余文件。示例:基于Python应用的Dockerfile包括设置工作目录、复制文件、安装依赖等步骤。掌握Dockerfile有助于高效自动化构建镜像,加速应用部署。
32 1
|
2月前
|
监控 Ubuntu Docker
如何在Docker容器启动时自动运行脚本
【8月更文挑战第13天】在Docker容器启动时自动运行脚本可通过以下方式实现:1) 使用`ENTRYPOINT`或`CMD`指令在Dockerfile中直接指定启动脚本,如`ENTRYPOINT ["/startup.sh"]`;2) 启动容器时通过`--entrypoint`参数指定脚本路径;3) 利用supervisor等进程管理工具自动启动与监控脚本,确保其稳定运行。确保脚本具有执行权限并正确设置依赖资源路径。
889 1