Dockerfile基本命令

基本命令

[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來進行連接。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容