补充:DockerFile入门
===
学习Docker File最好的办法就是看写好的file文件
~~~
# 我们一起来看看这个Dockerfile
# 指定基础景象
FROM ubuntu:latest
# 创建者描述信息 用法:MAINTAINER <name> <email>
MAINTAINER dollarkiller "adapawang@gmail.com"
# 拷贝文件 到容器里面
COPY sources.list /etc/apt/sources.list
# 在容器内执行命令
RUN apt-get update
# 注意:每一次run 就会给镜像增加一层
RUN apt-get install nginx -y
# 暴露容器内部端口
EXPOSE 80
~~~
### 构建
`docker build -t="景象名称" . `
`docker build -t="test" .`
## 命令
### CMD
- `CMD ["executable","param1"."param2"]` (exec 模式)
- `CMD command param1 param2` (shell模式)
- `CMD ["param1","param2"]` (作为ENTRYPOINT值令的默认参数)
- 指定容器运行的默认命令
~~~
# 我们一起来看看这个Dockerfile
# 指定基础景象
FROM ubuntu:latest
# 创建者描述信息 用法:MAINTAINER <name> <email>
MAINTAINER dollarkiller "adapawang@gmail.com"
# 拷贝文件 到容器里面
COPY sources.list /etc/apt/sources.list
# 在容器内执行命令
RUN apt-get update && apt-get install nginx -y
# 注意:每一次run 就会给镜像增加一层
#RUN apt-get install nginx -y
# 暴露容器内部端口
EXPOSE 80
# 指定默认运行值令
CMD ["/usr/sbin/nginx","-g","daemon off;"]
~~~
在运行时指定的命会被覆盖
### ENTRYPOINT
- `ENTRYPOINT ["executable","param1","param2"]` (exec模式)
- `ENTRYPOINT command param1 param2` (shell模式)
ENTRYPOINT 在运行时指定的命令不会被覆盖
### ADD COPY
- `ADD <src>...<desc>` 这个用于压缩文件
- `COPY <stc>...<desc>` 单纯复制文件推荐这个
### VOLUME
- `VOLUME["/data"]` 添加存储券
### WORKDIR
设置工作目录
类似与cd
- `WORKDIR path`
### env
设置环境
- `ENV <kev> <value>`
### user
指定景象用什么用户来运行
- `USER daemon`
默认root用户
### ONBUILD
- `ONBUILD [INSTRUCTON]`
景象触发器
(作为其他景象的基础景象在build时执行)