docker
dockerfile
dockerfile 可以理解如何創(chuàng)建鏡像文件
- 手動編寫 dockerfile 文件咆蒿,必須符合 file 的規(guī)范
- 用 docker build 執(zhí)行狱杰,獲得一個自定義的鏡像
- 用 run 命令運行
FROM scratch
這是就是最基礎(chǔ)鏡像性穿,一切鏡像都基于 scratch
CMD ["/bin/bash"]
dockerfile
- 每條保留字指令都必須為大寫字母且后面要至少跟隨一個參數(shù)
FROM
這樣指令后必須有內(nèi)容 - 指令執(zhí)行順序是之上而下執(zhí)行
-
表示注釋
- 每條指令都會創(chuàng)建一個新的鏡像層上遥,并對鏡像進(jìn)行提交
鏡像扭屁、容器和 dockerfile 的關(guān)系
- dockerfile 鏡像的圖紙
- docker 鏡像是模板
- docker 容器鏡像的一個一個實例
dockerfile 體系結(jié)構(gòu)
- FROM 基礎(chǔ)鏡像均牢,指定創(chuàng)建鏡像是基于哪一個鏡像
- MAINTAINER 鏡像維護(hù)人的信息堪旧,郵箱和名稱
- RUN 容器構(gòu)建時需要執(zhí)行的命令
- EXPOSE 暴露出鏡像的實例服務(wù)端口號
- WORDDIR 指定創(chuàng)建容器后削葱,終端默認(rèn)登錄進(jìn)來后的工作目錄,如果沒有指定默認(rèn)工作目錄是根目錄
- ENV 用來在構(gòu)建鏡像過程中設(shè)置環(huán)境變量
- ADD 相對于 COPY 淳梦,不但復(fù)制而且并進(jìn)行加壓析砸,將宿主機目錄下文件 copy 進(jìn)鏡像并自動處理 url 和解壓 tar 壓縮包
- COPY 直接復(fù)制,類似 ADD copy文件和目錄到鏡像中爆袍。將從構(gòu)建上下文目錄中<源路徑>的文件/目錄復(fù)制到新的一層的鏡像內(nèi)的<目標(biāo)路徑>位置
- VOLUME 容器數(shù)據(jù)卷首繁,用于數(shù)據(jù)保存和持久化
- CMD 指定一個容器啟動時要運行的命令,但是 ENTRYPOINT 的區(qū)別是在 dockerfile 可以有多個 CMD 命令陨囊,CMD 會被 docker run 之后的參數(shù)替換
- ENTRYPOINT 指定一個容器啟動時要運行的命令弦疮,
- ONBUILD 當(dāng)構(gòu)建一個被繼承的 dockerfile 時運行命令,父鏡像在被子繼承后父鏡像的 onbuild 被觸發(fā)
docker rm -f $(docker ps -q)
創(chuàng)建一個 Ubuntu
- 登錄后默認(rèn)路徑
- vim 編輯器
- 查看網(wǎng)絡(luò)配置ifconfig支持
FROM centos
MAINTAINER zidea
ENV mpath=/tmp
WORKDIR ${mpath}
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD [ "/bin/bash" ]
docker build -f Dockerfile -t mycentos:1.0 .
Successfully built xxxxxx
Successfully tagged mycentos:1.0
xxx 4 minutes ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
xxx 4 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B
xxx 4 minutes ago /bin/sh -c yum -y install net-tools 24.1MB
xxx 4 minutes ago /bin/sh -c yum -y install vim 59.8MB
xxx 5 minutes ago /bin/sh -c #(nop) WORKDIR /tmp 0B
xxx 5 minutes ago /bin/sh -c #(nop) ENV mpath=/tmp 0B
xxx 5 minutes ago /bin/sh -c #(nop) MAINTAINER zidea 0B
xxx 3 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 3 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 3 months ago /bin/sh -c #(nop) ADD file:aa54047c80ba30064… 237MB