您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Docker中寫Dockerfile的Tips有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Docker中寫Dockerfile的Tips有哪些”這篇文章吧。
寫Dockerfile的一些小tips:
在之前我使用Dockerfile創建了一個使用國內源的ubuntu鏡像,雖然可以直接改運行容器,改源再commit一下即可。但是正規的方法是交給Dockerfile處理。因此,我用了這么一個簡單的例子:
#my test image FROM dbehnke/ubuntu1404:latest MAINTAINER Hochikong RUN mkdir -p /home/backup RUN mv /etc/apt/sources.list /home/backup RUN wget http://172.16.77.157/sources.list -P /etc/apt RUN apt-get update
可以看到,我每條命令中,凡是涉及文件操作的都使用了絕對路徑。在Dockerfile中,我們寫命令并不能像操作bash那樣,直接
mkdir -p /home/backup cd /home/backup touch hello.txt
你可以試試在上面的創建hello.txt的命令前加上RUN,寫進Dockerfile。hello.txt絕對不會在/home/backup中出現喲!
我直接這么干了:
#just for fun FROM training/webapp:latest MAINTAINER hochikong RUN mkdir -p /home/backup RUN cd /home/backup RUN touch hello.txt
docker build -t="justfor/fun" .
順利創建了這么一個image:
啟動一下容器,發現命令是執行了,但是發現hello.txt并不在/home/backup中,而是在進入容器時的缺省目錄:
也就是說,在Dockerfile編寫時,一條RUN執行完,就會回到缺省目錄中,因此不能跨多條命令進行一個目標操作,也就是說:比如你要切換到某些目錄,再修改文件的操作,必須在一條RUN中完成,或者在多行命令中依靠絕對路徑進行文件操作(我的第一個例子)。
你也可以使用這樣的寫法:
#my test image FROM dbehnke/ubuntu1404:latest MAINTAINER Hochikong RUN mkdir -p /home/backup;cd /home/backup;echo 'Hello' > test.txt
使用逗號隔開命令,但是還是在同一個RUN行中。
這樣的編寫方法也是可以接受的,減少了RUN的行數。
以上是“Docker中寫Dockerfile的Tips有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。