【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(连接待更新)

三、思维导图

相关文章
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
637 76
|
Kubernetes Docker 容器
Kubernetes与Docker参数对照:理解Pod中的command、args与Dockerfile中的CMD、ENTRYPOINT。
需要明确的是,理解这些都需要对Docker和Kubernetes有一定深度的理解,才能把握二者的区别和联系。虽然它们都是容器技术的二个重要组成部分,但各有其特性和适用场景,理解它们的本质和工作方式,才能更好的使用这些工具,将各自的优点整合到生产环境中,实现软件的快速开发和部署。
579 25
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
14894 37
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
1139 3
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
253 10
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
1810 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
JavaScript 数据库 Docker
一个有用的docker entrypoint脚本的范例
通过这个 Entrypoint 脚本,您可以确保在 Docker 容器启动时执行必要的初始化步骤,并且容器可以根据不同的运行时环境进行相应的配置和操作。这个范例展示了如何编写一个灵活且功能强大的 Entrypoint 脚本,使您的 Docker 容器更加可靠和易于管理。
538 3
|
应用服务中间件 PHP nginx
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
通过使用Docker Compose,我们可以轻松编排LNMP环境并部署WordPress。本文详细介绍了各组件的Dockerfile和配置文件编写,并通过docker-compose.yml文件实现了整个环境的自动化部署。这种方法不仅简化了部署过程,还提高了环境的可移植性和一致性。希望本文能帮助你更好地理解和使用Docker Compose来管理和部署复杂的应用程序。
865 4
|
Docker 容器
docker中使用Dockerfile自动创建数据卷
【10月更文挑战第12天】
400 5
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
478 20

热门文章

最新文章