

# Inicialização de instâncias de contêiner do Linux no Amazon ECS para transmitir dados
<a name="bootstrap_container_instance"></a>

Ao iniciar uma instância do Amazon EC2, é possível transmitir dados do usuário para a instância do EC2. Os dados podem ser usados para realizar tarefas de configuração automatizadas em comum e até mesmo executar scripts na inicialização da instância. Para o Amazon ECS, os casos de uso mais comuns para dados de usuário devem transmitir informações de configuração para o daemon do Docker e o agente de contêiner do Amazon ECS.

É possível transmitir vários tipos de dados de usuário para o Amazon EC2, inclusive boothooks de nuvem, scripts de shell e diretivas `cloud-init`. Para obter mais informações sobre esses e outros tipos de formato, consulte a documentação [Cloud-Init](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). 

Para transmitir os dados do usuário ao usar o assistente de inicialização do Amazon EC2, consulte [Iniciar uma instância de contêiner do Linux do Amazon ECS](launch_container_instance.md).

É possível configurar a instância de contêiner para transmitir dados na configuração do agente de contêiner ou na configuração do daemon do Docker.

## Agente do contêiner do Amazon ECS
<a name="bootstrap_container_agent"></a>

As variantes do Linux da AMI otimizada para Amazon ECS procuram os dados da configuração do agente no arquivo `/etc/ecs/ecs.config` quando o agente de contêiner é iniciado. É possível especificar esses dados de configuração na inicialização com os dados de usuário do Amazon EC2. Para obter mais informações sobre as variáveis ​​de configuração do agente de contêiner do Amazon ECS disponíveis, consulte [Configuração do agente de contêiner do Amazon ECS](ecs-agent-config.md).

Para definir apenas uma única variável de configuração do agente, como o nome do cluster, use **echo** a fim de copiar a variável para o arquivo de configuração:

```
#!/bin/bash
echo "ECS_CLUSTER={{MyCluster}}" >> /etc/ecs/ecs.config
```

Caso você tenha várias variáveis a serem gravadas em `/etc/ecs/ecs.config`, use o formato `heredoc` a seguir. Esse formato grava tudo entre as linhas que começam com **cat** e `EOF` no arquivo de configuração.

```
#!/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
```

Para definir atributos de instância personalizados, defina a variável de ambiente `ECS_INSTANCE_ATTRIBUTES`.

```
#!/bin/bash
cat <<'EOF' >> ecs.config
ECS_INSTANCE_ATTRIBUTES={"envtype":"prod"}
EOF
```

## Daemon do Docker
<a name="bootstrap_docker_daemon"></a>

É possível especificar informações de configuração do daemon do Docker com os dados de usuário do Amazon EC2. Para mais informações sobre as opções de configuração, consulte [a documentação de daemon do Docker](https://docs.docker.com/reference/cli/dockerd/).

**nota**  
AWSA não oferece suporte a configurações personalizadas do Docker, pois ocasionalmente elas podem entrar em conflito com futuras alterações ou recursos do Amazon ECS sem aviso prévio.

No exemplo a seguir, as opções personalizadas são adicionadas ao arquivo de configuração do daemon do Docker, `/etc/docker/daemon.json`, que é então especificado nos dados de usuário quando a instância é iniciada.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"debug": true}
EOF
systemctl restart docker --no-block
```

No exemplo a seguir, as opções personalizadas são adicionadas ao arquivo de configuração do daemon do Docker, `/etc/docker/daemon.json`, que é então especificado nos dados de usuário quando a instância é iniciada. Este exemplo mostra como desabilitar o Docker-proxy no arquivo de configuração do daemon do Docker.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"userland-proxy": false}
EOF
systemctl restart docker --no-block
```