撰寫 Dockerfile

步驟 1 創建 Dockerfile

一个文件夹中可以有多个 Dockerfile,这在一些特定情况下是有用的。每个 Dockerfile 可以定义不同的 Docker 镜像,允许你根据需要创建多个不同的镜像。以下是如何在一个文件夹中管理多个 Dockerfile 及其使用场景的详细说明:

  1. 文件夹中的多个 Dockerfile 使用
    如果你在一个文件夹中放置多个 Dockerfile,通常会给每个 Dockerfile 一个唯一的名称,以便区分。例如,你可以创建以下 Dockerfile:

Dockerfile(默认 Dockerfile)
Dockerfile.dev(用于开发环境)
Dockerfile.prod(用于生产环境)

步驟 2 利用 Dockerfile 建立映像檔

$ mkdir sinatra
$ cd sinatra

# 以下指令只給 Unix 系統
$ touch Dockerfile
$ touch Dockerfile.dev
$ touch Dockerfile.prod

构建默认 Dockerfile:

docker build -t my-app .

构建指定 Dockerfile:

docker build -f Dockerfile.dev -t my-app-dev .
docker build -f Dockerfile.prod -t my-app-prod .

額外指定 Dockerfile:

# docker build [附加] [標籤] [映像命名] [當前目錄的Dockerfile]
docker build --no-cache -t myapp .
# docker run [背景運行] [container命名] [port號] [剛剛建立的image名稱/你要執行的image名稱]
docker run -d --name myNTFORMapp -p 8080:8080 myapp

步驟 3

步驟 4

步驟 5

步驟 6

步驟 7

步驟 8

步驟 9

步驟 10

建議:

環境變數設定

  1. 開發和測試環境:可以在 Dockerfile 中使用 ENV 指令來設置環境變數。
  2. s 生產環境:建議使用 Docker Compose 的 environment 設定,或將變數放在 .env 文件中。這樣可以更安全地管理環境變數,尤其是敏感信息。

問題:

  1. 不能把 dockerfile 像 shell 一樣寫

cd 與 workdir 的差別?


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 kimfei2014@gmail.com
github