本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
引導 Amazon ECS Linux 容器執行個體以傳遞資料
啟動 Amazon EC2 執行個體時,您可以將使用者資料傳遞至 EC2 執行個體。此資料可用來執行常見的自動化組態任務,甚至在執行個體啟動時,執行指令碼。對於 Amazon ECS,使用者資料的最常見使用案例是將組態資訊傳遞給 Docker 常駐程式和 Amazon ECS 容器代理程式。
您可以將多種類型的使用者資料傳遞至 Amazon EC2,包括雲端開機掛鉤、 shell 指令碼和cloud-init
指令。如需這些和其他格式類型的詳細資訊,請參閱 Cloud-Init 文件
若要在使用 Amazon EC2 啟動精靈時傳遞使用者資料,請參閱 啟動 Amazon ECS Linux 容器執行個體。
您可以設定容器執行個體,以傳遞容器代理程式組態或 Docker 常駐程式組態中的資料。
Amazon ECS 容器代理程式
容器代理程式啟動時,Amazon ECS 最佳化 AMI 的 Linux 變體會尋找/etc/ecs/ecs.config
檔案中的代理程式組態資料。您可以使用 Amazon EC2 使用者資料在啟動時指定此組態資料。如需可用 Amazon ECS 容器代理程式組態變數的詳細資訊,請參閱 Amazon ECS 容器代理程式組態。
若只要設定單一代理程式組態變數 (例如叢集名稱),請使用 echo 將變數複製至組態檔案:
#!/bin/bash echo "ECS_CLUSTER=
MyCluster
" >> /etc/ecs/ecs.config
如有多個變數要寫入 /etc/ecs/ecs.config
,請使用以下 heredoc
格式。此格式會將開頭為 cat 和 EOF
之行間的所有項目寫入組態檔案。
#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}} ECS_LOGLEVEL=debug
ECS_WARM_POOLS_CHECK=true
EOF
若要設定自訂執行個體屬性,請設定 ECS_INSTANCE_ATTRIBUTES
環境變數。
#!/bin/bash cat <<'EOF' >> ecs.config ECS_INSTANCE_ATTRIBUTES={"envtype":"prod"} EOF
Docker 常駐程式
您可以使用 Amazon EC2 使用者資料指定 Docker 常駐程式組態資訊。如需組態選項的詳細資訊,請參閱 Docker 常駐程式文件
在下例中,自訂選項會新增到 Docker 常駐程式組態檔案,/etc/docker/daemon.json
,然後在執行個體啟動時在使用者資料中指定它。
#!/bin/bash cat <<EOF >/etc/docker/daemon.json {"debug": true} EOF systemctl restart docker --no-block
在下例中,自訂選項會新增到 Docker 常駐程式組態檔案,/etc/docker/daemon.json
,然後在執行個體啟動時在使用者資料中指定它。此範例顯示如何停用 Docker 常駐程式組態檔案中的 Docker 代理。
#!/bin/bash cat <<EOF >/etc/docker/daemon.json {"userland-proxy": false} EOF systemctl restart docker --no-block