【Docker】Dockerfile的常用指令
1. docker指令

1.1 COPY復制指令
格式:
COPY <宿主機路徑> <容器目錄地址>
COPY ["宿主機路徑","容器路徑"];
比如說這個指令,是把宿主機的redis-master,conf 復制到容器的根目錄config下
1.2 ADD復制
ADD指令跟COPY的指令格式是一樣的,但是在COPY基礎上增加了一些功能
這里只介紹一種,因為這個指令并不提倡使用
ADD 宿主機的壓縮文件? 容器地址??這樣會直接把壓縮文件解壓過去
所以說在COPY和ADD指令選擇時,使用文件復制全部使用COPY,僅在需要自動解壓時才使用ADD
1.3 CMD
這個指令有倆種用法
shell格式:CMD <命令>
exec格式:CMD ["可執行文件","參數1","參數2"];
比如:
CMD echo $HOME
在實際執行中,會將其變更為:
CMD ["sh","-c","echo $HOME"];
docker不是虛擬機,容器中的應用都應該以前臺執行,而不是虛擬機那樣可以啟動后臺服務,容器內沒有后臺服務的概念
在比如說
CMD service nginx start
執行完之后會發現容器立即就退出了,CMD service nginx start會被理解為CMD ["sh","-c","service nginx start"];因此主進程就是sh。那么當service nginx start命令結束時,sh也就結束了,sh作為主進程推出了,自然就會令容器退出了
正確的做法是直接執行nginx可執行文件,并且要求以前臺形式運行
CMD ["nginx","-g","daemon off"];
1.4 ENV環境變量
格式:
ENV key value
ENV key=value key1=value1
例如:ENV NODE_VERSION 7.2.0
1.5 VOLUME共享目錄
VOLUME /usr/docker/config? /config
會自動在容器里邊創建config目錄。并共享 /usr/docker/config文件
1.6?WORKDIR 指定工作目錄
WORKDIR /config
這個就是指在進入容器后會在config這個目錄
1.7?USER 指定當前用戶
格式: USER <用戶名>
就是在容器里邊使用哪個用戶
Docker
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。