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


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


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

三、思维导图

在这里插入图片描述

四、结语

  • 一个字:背

猜你喜欢

转载自blog.csdn.net/H875035681/article/details/125711707