1-4dockerfile基本使用
生活随笔
收集整理的這篇文章主要介紹了
1-4dockerfile基本使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.創建一個文件夾
mkdir mynginxcd mynginxtouch Dockerfile [root@VM_0_10_centos mynginx]# cat Dockerfile FROM nginx:1.17 #第一次鏡像RUN echo echo '<h1>Hello, zjy!</h1>' > /usr/share/nginx/html/index.html1-1、如果說沒有第一層鏡像,是空白鏡像scratch
FROM scratch ...1-2、dockerfile? 最大鏡像層數有限制
Union FS 是有最?層數限制的,?如 AUFS,曾經是最?不得超過 42 層,現在是不得超過 127層。 Dockerfile 正確的寫法應該是這樣:FROM debian:jessie RUN buildDeps='gcc libc6-dev make' \ && apt-get update \ && apt-get install -y $buildDeps \ && wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" \ && mkdir -p /usr/src/redis \ && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \ && make -C /usr/src/redis \ && make -C /usr/src/redis install \ Dockerfile 定制鏡像 27 && rm -rf /var/lib/apt/lists/* \ && rm redis.tar.gz \ && rm -r /usr/src/redis \ && apt-get purge -y --auto-remove $buildDeps#而不是這樣怎寫的 FROM debian:jessie RUN apt-get update RUN apt-get install -y gcc libc6-dev make RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" RUN mkdir -p /usr/src/redis RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 RUN make -C /usr/src/redis RUN make -C /usr/src/redis install2.制作鏡像
docker build -t nginx:v3 .?
?3、dockerfile 構建會有上下文
如果注意,會看到 docker build 命令最后有 一個? .? ?,? . 表示當前目錄, Dockerfile 就在當前目錄。
當執行COCP指令時會把當前目錄打包放在鏡像中,如果把dockerfile放在根目錄下,打包可能一個鏡像會幾十G,那樣就尷尬了
COPY ./package.json /app/# ./package.jso #所有打包的或者拷貝的全都放到dockerfile 所在目錄中,這樣才正確 應該會將 Dockerfile 置于一個空目錄下,或者項目根目錄下。 實際上 Dockerfile 的件名并不要求必須為 Dockerfile,而且并不要求必須位于上下目錄 -f ../Dockerfile.php 參數指定某個文件作為 Dockerfile4、鏡像的遷移
Docker 還提供了 docker load 和 docker save 命令,以將鏡像保存為一個 tar 文件,然后傳輸到另一個位置上,再加載進來。這是在沒有 Docker Registry 時的做法,現在已經不推薦,鏡像遷移應該直接使 Docker Registry,無論是直接使用Docker Hub 還是使內內網私有 Registry 都可以。 [root@VM_0_10_centos mynginx]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v3 1af39fd25fb3 29 minutes ago 126MB nginx v2 7d3e771ab88b 5 hours ago 126MB nginx 1.17 f949e7d76d63 38 hours ago 126MB ubuntu 16.04 657d80a6401d 7 days ago 121MB [root@VM_0_10_centos mynginx]# docker save nginx:v3|gzip > nginx_v3.tar.gz [root@VM_0_10_centos mynginx]# ls Dockerfile nginx_v3.tar.gz [root@VM_0_10_centos mynginx]# du -sh nginx_v3.tar.gz 47M nginx_v3.tar.gz [root@VM_0_10_centos mynginx]# docker rmi 1af39fd25fb3 Untagged: nginx:v3 Deleted: sha256:1af39fd25fb3616ea2efd24d00e0f77309c6a8c6af4ab527678a6adea1250991 Deleted: sha256:d2549ea8e90863f679a50fd3378bd9c06fd766107565f53435134d40470c7799[root@VM_0_10_centos mynginx]# docker load -i nginx_v3.tar.gz 44d9a80fe7fc: Loading layer [==================================================>] 4.096kB/4.096kB Loaded image: nginx:v3 [root@VM_0_10_centos mynginx]# docker im image images import [root@VM_0_10_centos mynginx]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v3 1af39fd25fb3 30 minutes ago 126MB nginx v2 7d3e771ab88b 5 hours ago 126MB nginx 1.17 f949e7d76d63 38 hours ago 126MB ubuntu 16.04 657d80a6401d 7 days ago 121MB?
?
轉載于:https://www.cnblogs.com/zhaojingyu/p/11594650.html
總結
以上是生活随笔為你收集整理的1-4dockerfile基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python netsnmp_pytho
- 下一篇: 项目管理基础:软件开发的方法介绍