Dockerfile檔案配置詳解

2021-08-09 04:04:53 字數 1843 閱讀 2132

dockerfile用來建立乙個自定義的image,包含了使用者指定的軟體依賴等。當前目錄下包含dockerfile,使用命令build來建立新的image,並命名為edwardsbean/centos6-jdk1.7:

docker  build -t edwardsbean/centos6-jdk1.7  .
如何編寫乙個dockerfile,格式如下:

# comment

instruction arguments

from

基於哪個映象

run安裝軟體用

maintainer

映象建立者

cmdcontainer啟動時執行的命令,但是乙個dockerfile中只能有一條cmd命令,多條則只執行最後一條cmd.

cmd主要用於container時啟動指定的服務,當docker run command的命令匹配到cmd command時,會替換cmd執行的命令。如:

dockerfile:

cmd echo hello world
執行一下試試:

edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd

hello world

一旦命令匹配:

edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd echo hello edwardsbean

hello edwardsbean

entrypoint

container啟動時執行的命令,但是乙個dockerfile中只能有一條entrypoint命令,如果多條,則只執行最後一條

entrypoint沒有cmd的可替換特性

user

使用哪個使用者跑container

如:

entrypoint ["memcached"]

user daemon

expose

container內部服務開啟的埠。主機上要用還得在啟動container時,做host-container的埠對映:

docker run -d -p 127.0.0.1:33301:22 centos6-ssh
container ssh服務的22埠被對映到主機的33301埠

env用來設定環境變數,比如:

env lang en_us.utf-8

env lc_all en_us.utf-8

add

將檔案拷貝到container的檔案系統對應的路徑

所有拷貝到container中的檔案和資料夾許可權為0755,uid和gid為0

如果檔案是可識別的壓縮格式,則docker會幫忙解壓縮

注意:使用docker build - < somefile方式進行build,是不能直接將本地檔案add到container中。只能add url file.

volume

可以將本地資料夾或者其他container的資料夾掛載到container中。

workdir

切換目錄用,可以多次切換(相當於cd命令),對run,cmd,entrypoint生效

onbuild

onbuild 指定的命令在構建映象時並不執行,而是在它的子映象中執行

詳見here

Dockerfile檔案配置介紹

dockerfile用來建立乙個自定義的image,包含了使用者指定的軟體依賴等。當前目錄下包含dockerfile,使用命令build來建立新的image,並命名為edwardsbean centos6 jdk1.7 docker build t edwardsbean centos6 jdk1....

Dockerfile 配置檔案詳解

docker 可以通過讀取 dockerfile 配置檔案自動生成映象,也可以直接通過 docker 命令或 docker pull 命令生成映象。dockerfile解決了自動化的問題。使用docker build命令即可執行檔案中的所有命令,減少了映象和容器的建立過程,簡化了部署。dockerf...

Dockerfile檔案詳解

一 dockerfile檔案 二 配置檔案詳解 1.from centos 我們的docker是基於哪個基礎映象的 我們的工作目錄 3.copy metadata metadata 將本地的專案拷貝到docker內部 4,run命令 在docker內部執行一下命令,可以是安裝軟體,新建資料夾等操作 ...