在 Amazon ECS 中設定 Docker 常駐程式的詳細輸出 - Amazon Elastic Container Service

在 Amazon ECS 中設定 Docker 常駐程式的詳細輸出

如果使用 Docker 容器或映像時發生問題,您可以在 Docker 常駐程式中啟用偵錯模式。啟用偵錯功能可提供更多常駐程式的詳細輸出,您可透過該功能擷取從容器登錄檔 (例如 Amazon ECR) 傳送的錯誤訊息。

重要

此程序是針對 Amazon ECS 最佳化 Amazon Linux AMI 所寫入。其他作業系統請參閱 Docker 文件中的 Enable debuggingControl and configure Docker with systemd

在 Amazon ECS 最佳化 Amazon Linux AMI 中使用 Docker 常駐程式偵錯模式
  1. 連線到您的容器執行個體。

  2. 使用文字編輯器開啟 Docker 選項檔案,例如 vi。對於 Amazon ECS 最佳化 Amazon Linux AMI,Docker 選項檔案位於 /etc/sysconfig/docker

  3. 尋找 Docker 選項陳述式,並在字串中新增以引號括住的 -D 選項。

    注意

    如果 Docker 選項陳述式以 # 開頭,請移除該字元以取消陳述式註解並啟用選項。

    對於 Amazon ECS 最佳化 Amazon Linux AMI,Docker 選項陳述式稱為 OPTIONS。例如:

    # Additional startup options for the Docker daemon, for example: # OPTIONS="--ip-forward=true --iptables=true" # By default we limit the number of open files per container OPTIONS="-D --default-ulimit nofile=1024:4096"
  4. 儲存檔案並結束您的文字編輯器。

  5. 重新啟動 Docker 常駐程式。

    sudo service docker restart

    其輸出如下:

    Stopping docker: [ OK ] Starting docker: . [ OK ]
  6. 重新啟動 Amazon ECS 代理。

    sudo service ecs restart

您的 Docker 日誌現在應該會顯示更多的詳細輸出。

time="2015-12-30T21:48:21.907640838Z" level=debug msg="Unexpected response from server: \"{\\\"errors\\\":[{\\\"code\\\":\\\"DENIED\\\",\\\"message\\\":\\\"User: arn:aws:sts::1111:assumed-role/ecrReadOnly/i-abcdefg is not authorized to perform: ecr:InitiateLayerUpload on resource: arn:aws:ecr:us-east-1:1111:repository/nginx_test\\\"}]}\\n\" http.Header{\"Connection\":[]string{\"keep-alive\"}, \"Content-Type\":[]string{\"application/json; charset=utf-8\"}, \"Date\":[]string{\"Wed, 30 Dec 2015 21:48:21 GMT\"}, \"Docker-Distribution-Api-Version\":[]string{\"registry/2.0\"}, \"Content-Length\":[]string{\"235\"}}"