基本命令
[TOC]
FROM
指定基礎鏡像,必須為第一條指令
FROM <\image>
RUN
運行指定的命令
1)RUN < \command >
2)RUN ["executable","param1", "param2" ]
兩種寫法輸出hello 對比
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'
RUN ["/bin/bash", "-c", "echo hello"]
CMD
1)CMD ["executable","param1","param2"]
2)CMD ["param1","param2"]
3)CMD command param1 param2
CMD [ "sh", "-c", "echo $HOME" ]
CMD [ "echo", "$HOME" ]
CMD echo $HOME
必須為 " " 而不是單引號,因為解析的是一個JSON格式
RUN是在容器構建過程中的命令
CMD是在容器啟動時執(zhí)行的命令
LABEL
指定鏡像標簽
LABEL <key>=<value> <key>=<value> <key>=<value> ...
MAINTAINER
指定作者
MAINTANER <name>
EXPOSE
暴露容器運行時的監(jiān)聽端口給外部
ENV
設定環(huán)境變量
1)ENV <key> <value> #只能設置一個
2)ENV <key>=<value>... #可以設置多個
ADD
把文件復制到鏡像中
ADD <src> <dest>
src為文件或者url
dest 為路徑(絕對路徑或者相對路徑)
ADD test django\
ADD http://example.com/
COPY
把文件復制到鏡像中
但是只能復制本地文件
ENTRYPOINT
啟動時的默認命令
只能寫一條,容器啟動時運行
1)ENTRYPOINT ["executable", "param1", "param2"]
2)ENTRYPOINT command param1 param2
VOLUME
可以進行掛載,將本地文件夾或者其他容器中的文件掛到容器中
VOLUME ["/data"]
USER
設置啟動容器的用戶
1)USER daemo #用戶
2)USER UID #UID
WORKDIR
工作目錄 相當于cd
WORKDIR /PATH/TO/WORKDIR
指定目錄如果不存在,則會創(chuàng)建
如
WORKDIR /a
WORKDIR b
WORKDIR c
pwd執(zhí)行的結果是/a/b/c
ARG
ONBUILD
STOPSIGNAL
HEALTHCHECK
項目編寫需要注意一些東西
一共有兩種方法去部署django項目
1.使用nginx+uwsgi+django+docker+Supervisord 其中Supervisord 進程控制管理器
原因 因為Docker部署需要遵守一個規(guī)則,就是一個容器中只能有一個進程,比如這里我們使用uwsgi+nginx 就會有雙線程運作
這樣就會部署不成功。因此我們要使用SuperVisord 進程控制管理,將uwsgi和nginx的進程放在這個里面 用它來管理,這樣就只有一個進程了。 小項目部署
2.分離部署。為了遵守運行的規(guī)則,因此我們可以將uwsgi部署在一個容器中,nginx部署在另一個容器中。并且使用--link來進行連接。