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

三、思维导图

相关文章
|
1月前
|
缓存 安全 Docker
《Docker 简易速速上手小册》第3章 Dockerfile 与镜像构建(2024 最新版)
《Docker 简易速速上手小册》第3章 Dockerfile 与镜像构建(2024 最新版)
67 0
|
1月前
|
应用服务中间件 Shell nginx
Docker进阶:深入了解 Dockerfile
Dockerfile 是定义 Docker 镜像内容和构建步骤的文本文件,用于定制化镜像构建,包括基础镜像选择、软件安装和环境变量设置等。其优点在于支持容器化趋势,简化快速部署和交付,保证环境一致性,实现资源隔离和安全性,以及促进持续集成与持续部署。Dockerfile 指令如 FROM(指定基础镜像)、RUN(执行命令)、CMD(容器启动命令)和 EXPOSE(声明端口)。编写规则包括使用大写指令、创建 .dockerignore 文件排除无关文件等。
112 0
|
1月前
|
数据库 Docker 容器
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
【5月更文挑战第8天】Dockerfile是构建Docker镜像的关键,它包含一系列指令,用于描述应用运行环境及所需软件包。通过自动化构建,能提高效率、保证可重复性并提升灵活性。确定基础镜像、安装依赖、设置环境后,执行Dockerfile生成镜像,用于应用程序部署。虽然需要熟悉Docker技术和应用细节,但其带来的益处使其成为现代软件开发和部署的重要工具。
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
|
7天前
|
缓存 Linux 开发工具
win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像
win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像
35 0
|
19天前
|
Cloud Native Java Docker
java一分钟之-Docker化Java应用:Dockerfile与镜像构建
【6月更文挑战第6天】本文探讨了Docker在Java应用部署中的重要性,强调了Dockerfile在保证环境一致性和提升部署效率上的作用。Dockerfile是自动化构建Docker镜像的文本文件,它的使用能实现标准化、可重复性和透明度。文章指出了编写Dockerfile时的常见问题,如指令误用、镜像体积过大和安全性不足,并提供了相应的解决策略。通过一个Spring Boot应用的实战示例,展示了如何编写Dockerfile和构建镜像。总之,掌握Dockerfile和镜像构建技巧对于优化Java应用的云原生部署至关重要。
49 0
|
26天前
|
Linux Docker 容器
蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)
以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。
97 0
|
1月前
|
NoSQL Unix MongoDB
【docker 】docker-compose 部署mongoDB
【docker 】docker-compose 部署mongoDB
37 1
|
1月前
|
Linux 开发工具 Docker
Ubantu docker学习笔记(三)docker账号push及Dockerfile优化
Ubantu docker学习笔记(三)docker账号push及Dockerfile优化
|
1月前
|
关系型数据库 MySQL Linux
服务器脚本推荐,yum更新阿里镜像源、安装Docker、使用Docker安装MySQL服务
服务器脚本推荐,yum更新阿里镜像源、安装Docker、使用Docker安装MySQL服务
293 1
|
1月前
|
应用服务中间件 Shell nginx
制作docker镜像的dockerfile编写规则汇总
制作docker镜像的dockerfile编写规则汇总