前言
本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。
一、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(连接待更新)
三、思维导图

四、结语