這篇文章主要介紹了Docker中Dockerfile怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為莒南等服務(wù)建站,莒南等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為莒南企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Dockerfile文件的說明:
格式:
INSTRUCTION arguments
雖然指令忽略大小寫,但建議用大寫
# 是注釋
MAINTAINER命令:
MAINTAINER命令用來指定維護者的姓名和聯(lián)系方式
FROM命令:
FROM <image>/<image>:<tag>
這個是設(shè)置基本的鏡像,為后續(xù)的命令使用,所以應(yīng)該作為Dockerfile的第一條指令
比如:
FROM centos6-base
RUN 命令:
會上面FROM 指定的鏡像里執(zhí)行任何命令,然后提交(commit)結(jié)果,提交的鏡像會在后面繼續(xù)用到
格式:
RUN <command> (這個命令運行一個shell中 - '/bin/sh -c')
或:
RUN ["executable", "param1", "param2"]
RUN 命令等價于:
docker run image_name command
CMD and ENTRYPOINT
命令設(shè)置在容器啟動時執(zhí)行命令
ENTRYPOINT,表示鏡像在初始化時需要執(zhí)行的命令,不可被重寫覆蓋,需謹記
CMD,表示鏡像運行默認參數(shù),可被重寫覆蓋
ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一個生效 多個存在,只有最后一個生效,其它無效!
需要初始化運行多個命令,彼此之間可以使用 && 隔開,但最后一個須要為無限運行的命令,需切記!
ENTRYPOINT/CMD,一般兩者可以配合使用,比如:
ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]
** 在Docker daemon模式下,無論你是使用ENTRYPOINT,還是CMD,最后的命令,一定要是當前進程需要一直運行的,才能夠防容器退出。***
以下無效方式:
ENTRYPOINT service tomcat7 start #運行幾秒鐘之后,容器就會退出
CMD service tomcat7 start #運行幾秒鐘之后,容器就會退出
這樣有效:
ENTRYPOINT service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
# 或者
CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
這樣也有效:
ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]
USER 命令
比如指定 memcached 的運行用戶,可以使用上面的 ENTRYPOINT or CMD來實現(xiàn):
ENTRYPOINT ["memcached", "-u", "daemon"]
更好的方式:
ENTRYPOINT ["memcached"]
USER daemon
EXPOSE 命令
EXPOSE 命令可以設(shè)置一個端口在運行的鏡像中暴露在外
在docker使用--link來鏈接兩容器時會用到相關(guān)端口
EXPOSEd <port>
ENV命令:
用于設(shè)置環(huán)境變更
使用此dockerfile生成的image新建container,可以通過 docker inspect CONTAINER ID 看到這個環(huán)境變量
也可以通過在docker run時設(shè)置或修改環(huán)境變量
ADD 命令:
從src復制文件到container的dest路徑:
ADD <src> <dest>
<src> 是相對被構(gòu)建的源目錄的相對路徑,可以是文件或目錄的路徑,也可以是一個遠程的文件url
<dest> 是container中的絕對路徑
VOLUME 命令
VOLUME ["<mountpoint>"]
如:
VOLUME ["/data"]
創(chuàng)建一個掛載點用于共享目錄
WORKDIR 命令
WORKDIR /path/to/workdir
配置RUN, CMD, ENTRYPOINT 命令設(shè)置當前工作路徑
可以設(shè)置多次,如果是相對路徑,則相對前一個 WORKDIR 命令
比如:
WORKDIR /a WORKDIR b WORKDIR c RUN pwd
其實是在 /a/b/c 下執(zhí)行 pwd
Dockerfile文件到此介紹完畢。
下面是一個完整的Dockerfile文件
#Dockerfile FROM centos6-base MAINTAINER zhou_mfk <zhou_mfk@163.com> RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh EXPOSE 22 RUN echo 'root:redhat' | chpasswd RUN yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 RUN yum install tar gzip gcc vim wget -y ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 CMD /usr/sbin/sshd -D #End
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Docker中Dockerfile怎么用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
網(wǎng)站欄目:Docker中Dockerfile怎么用
地址分享:http://aaarwkj.com/article22/pdhscc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、域名注冊、外貿(mào)建站、關(guān)鍵詞優(yōu)化、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)