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 |