dockerfile文件名_Linux云计算教程全套视频合集:Dockerfile详解(一)
我們可以把剛才的對容器的所有操作命令都記錄到一個文件里,就像寫更腳本程序。之后用 docker build 命令以此文件為基礎制作一個鏡像,并會自動提交到本地倉庫。這樣的話鏡像的構建會變的透明化,對鏡像的維護起來也更加簡單,只修改這個文件即可。
同時分享也更加簡單快捷,因為只要分享這個文件即可。
Dokcerfile 是一個普通的文本文件,文件名一般叫 Dockerfile。
其中包含了一系列的指令(Instruction), 每一條指令都會構建一層,就是描述該層是如何創建的。
小試牛刀
示例:
[root@localhost ~]# mkdir centos_dockerfile
[root@localhost ~]# cd centos_dockerfile/
[root@localhost centos_dockerfile]# vi Dockerfile
FROM centos:latest
LABEL maintainer="yangge <yangge@qf.com>" description="Install tree vim*"
RUN rpm -qa | grep tree || yum install -y tree vim*
指令介紹:
FORM 定義一個基礎鏡像LABEL 定義一些元數據信息,比如作者、版本、關于鏡像的描述信息RUN 執行命令行的命令
編輯完,保存退出
2.開始構建鏡像
命令語法格式:
docker bulid -t 倉庫名/鏡像名:tag .
docker build [選項] <上下文路徑/URL/->
示例:
[root@localhost centos_dockerfile]# docker build -t centos:1.20 .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM centos:latest
---> e934aafc2206
Step 2/3 : LABEL maintainer="shark<dockerhub@163.com>" description="Install tree vim*"
---> Using cache
---> 1207b2848015
Step 3/3 : RUN rpm -qa | grep tree || yum install -y tree vim*
---> Running in 33d321b249d7
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
...略...
Complete!
Removing intermediate container 33d321b249d7
---> adc30981bc84
Successfully built adc30981bc84 # 表示構建成功
Successfully tagged centos:1.20 # TAG 標簽
[root@localhost centos_dockerfile]#
構建鏡像的上下文(context)
這個 . 表示當前目錄,這實際上是在指定上下文的目錄是當前目錄,docker build 命令會將該目錄下的內容打包交給 Docker 引擎以幫助構建鏡像。
docker build 命令得知這個路徑后,會將路徑下的所有內容打包,然后上傳給 Docker 引擎。這樣 Docker 引擎收到這個上下文包后,展開就會獲得構建鏡像所需的一切文件。
最佳實戰
一般來說,應該會將 Dockerfile 置于一個空目錄下,或者項目根目錄下。如果該目錄下沒有所需文件,那么應該把所需文件復制一份過來。如果目錄下有些東西確實不希望構建時傳給 Docker 引擎,那么可以用 .gitignore 一樣的語法寫一個 .dockerignore,該文件是用于剔除不需要作為上下文傳遞給 Docker 引擎的Dockerfile 的文件名并不要求必須為 Dockerfile,而且并不要求必須位于上下文目錄中,比如可以用 -f ../Dockerfile.qf 參數指定某個文件作為 Dockerfile。一般大家習慣性的會使用默認的文件名 Dockerfile,以及會將其置于鏡像構建上下文目錄中。
總結
以上是生活随笔為你收集整理的dockerfile文件名_Linux云计算教程全套视频合集:Dockerfile详解(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql修改字段名和长度_mysql中
- 下一篇: linux实时进程优先级rt,Linux