docker-compose脚本编写高频关键词(一)

此处关键词应该必须能灵活运用

关键词

解释

例子

version

定义使用的docker-compose文件版本。较新的版本支持更丰富的功能和选项。

version: '3.8'

services

定义应用程序的各个服务及其配置。每个服务通常对应一个容器。

services: web:<br> image: nginx<br> ports:<br> - "8080:80"

image

指定服务所使用的镜像名称。

image: nginx

ports

将容器内部的端口映射到主机上的端口。

ports:<br> - "8080:80"

volumes

将主机上的目录或文件挂载到容器内部。用于持久化存储数据。

volumes:<br> - /path/on/host:/path/in/container

environment

设置容器的环境变量。

environment:<br> MYSQL_ROOT_PASSWORD: example

networks

定义容器所属的网络。

networks:<br> - backend

depends_on

定义服务之间的依赖关系。确保某个服务在另一个服务启动之前启动。

depends_on:<br> - database

restart

定义容器退出后的重启策略。

restart: always

docker-compose脚本编写关键词(二)

这些关键词可以根据你的应用程序需求来定制docker-compose文件,提供更多的灵活性和扩展性。它们包括构建镜像、命令定义、服务链接、端口暴露、网络连接、卷共享、健康检查、部署配置、日志记录、配置文件和机密等方面的功能。

关键词

解释

示例

build

定义构建镜像所需的Dockerfile路径或构建上下文。

build: ./app

command

指定容器启动时要执行的命令。

command: python  app.py

links

将服务链接到另一个服务。

links:<br> - db

expose

暴露容器的端口给连接的服务或主机。

expose:<br> - 8080

networks

定义容器要连接到的网络。

networks:<br> - frontend<br> - backend

volumes_from

共享另一个服务的卷。

volumes_from:<br> - service_name

external_links

将服务链接到docker-compose文件外的容器。

external_links:<br> - container_name

healthcheck

定义容器的健康检查配置。

healthcheck:<br> test: ["CMD", "curl", "-f", "http://localhost

"]

deploy

定义服务的部署配置,如副本数、更新策略等。

deploy:<br> mode: replicated<br> replicas: 3

logging

定义服务的日志记录配置。

logging:<br> driver: syslog

configs

指定配置文件以供服务使用。

configs:<br> - myconfig

secrets

指定使用的加密机密。

secrets:<br> - mysecret

docker-compose脚本编写关键词(三)

这些关键词可以帮助你更精细地配置和管理docker-compose文件中的容器,例如指定用户、工作目录,覆盖入口点,设置停止信号等。这些功能可以满足对容器化应用程序更高级的需求,使得容器的运行环境更加灵活和定制化。

关键词

解释

示例

tty

分配一个伪终端设备给容器。

tty: true

stdin_open

打开标准输入流,允许在容器内部交互。

stdin_open: true

user

指定容器的运行用户。

user: "1000:1000"

working_dir

指定容器的工作目录。

working_dir: /app

entrypoint

覆盖容器默认的入口点。

entrypoint: /app/entrypoint.sh

stop_signal

指定发送给容器的停止信号。

stop_signal: SIGTERM

domainname

容器的域名。

domainname:  example.com

hostname

容器的主机名。

hostname: my-container

ipc

共享容器间的IPC命名空间。

ipc: shareable

privileged

授予容器特权访问主机系统。

privileged: true

shm_size

指定容器的共享内存大小。

shm_size: 256M

tmpfs

将临时文件系统挂载到容器内部。

tmpfs:<br> - /run<br> - /tmp