一、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
二、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(连接待更新)
三、思维导图