補充: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時執行)