yaml 被用于配置 docker 的容器、映像和服務(wù)。要配置:對于容器,在 docker-compose.yml 中指定名稱、鏡像、端口和環(huán)境變量。對于映像,在 dockerfile 中提供基礎(chǔ)鏡像、構(gòu)建命令和默認(rèn)命令。對于服務(wù),在 docker-compose.service.yml 中設(shè)定名稱、鏡像、端口、卷和環(huán)境變量。
使用 YAML 配置 Docker
Docker 使用 YAML(YAML ain’t Markup Language)作為其配置文件的格式。YAML 是一種簡潔的人類可讀性語言,可用于描述數(shù)據(jù)結(jié)構(gòu)。通過使用 YAML,您可以輕松配置 Docker 容器、映像和服務(wù)。
YAML 文件的結(jié)構(gòu)
YAML 文件由以下部分組成:
- 鍵值對:由冒號分隔的鍵和值。鍵必須為字符串,值可以是任何數(shù)據(jù)類型(字符串、數(shù)字、列表或映射)。
- 列表:用破折號(-)表示的項(xiàng)目列表。
- 映射:用空格縮進(jìn)的鍵值對,表示嵌套數(shù)據(jù)結(jié)構(gòu)。
配置 Docker 容器
要使用 YAML 配置 Docker 容器,請創(chuàng)建一個(gè)名為 docker-compose.yml 的文件。該文件包含以下信息:
- 容器名稱:分配給容器的名稱。
- 鏡像:用于創(chuàng)建容器的 Docker 鏡像。
- 命令:在容器啟動(dòng)時(shí)運(yùn)行的命令。
- 端口:容器公開的端口。
- 環(huán)境變量:在容器內(nèi)設(shè)置的環(huán)境變量。
示例 Docker Compose 文件
version: "3.9" services: web: image: nginx:latest ports: - "80:80" environment: - VIRTUAL_HOST=example.com
配置 Docker 映像
要使用 YAML 配置 Docker 映像,請創(chuàng)建一個(gè)名為 Dockerfile 的文件。該文件包含以下指令:
- FROM:指定要構(gòu)建映像的基礎(chǔ)鏡像。
- RUN:在映像構(gòu)建期間運(yùn)行的命令。
- copy:將文件或目錄從主機(jī)復(fù)制到映像。
- CMD:在容器啟動(dòng)時(shí)運(yùn)行的默認(rèn)命令。
示例 Dockerfile
FROM nginx:latest RUN echo "Hello, world!" > /usr/share/nginx/html/index.html
配置 Docker 服務(wù)
要使用 YAML 配置 Docker 服務(wù),請創(chuàng)建一個(gè)名為 docker-compose.service.yml 的文件。該文件包含以下信息:
- 服務(wù)名稱:分配給服務(wù)的名稱。
- 鏡像:用于創(chuàng)建服務(wù)的 Docker 鏡像。
- 端口:服務(wù)公開的端口。
- 卷:將主機(jī)上的目錄掛載到服務(wù)中的目錄。
- 環(huán)境變量:在服務(wù)中設(shè)置的環(huán)境變量。
示例 Docker Compose 服務(wù)文件
version: "3.9" services: web: image: nginx:latest ports: - "80:80" volumes: - "/path/to/local/directory:/path/to/container/directory" environment: - VIRTUAL_HOST=example.com