O que é o Shipyard?
Shipyard é uma plataforma open-source para gerenciar ambientes Docker, oferecendo funcionalidades como gerenciamento de imagens e containers, monitoramento de recursos, suporte a clusters Swarm e controle de permissões de usuários. Embora exista uma versão localizada em chinês, possui limitações como falta de suporte para operações em lote em containers e sobrecarga de recursos.
Conceitos Principais
- Engine: Cada daemon Docker monitorado pelo Shipyard é um engine. A comunicação é feita via API do Docker, com opção de SSL para segurança.
- RethinkDB: Utilizado como banco de dados para armazenar informações de usuários, engines e configurações, sem dados de containers ou imagens.
Ecossistema do Shipyard
A implantação envolve múltiplos containers: RethinkDB para armazenamento, etcd para descoberta no Swarm, gerenciamento de certificados, proxy para comunicação TCP-Unix, gerente e agentes Swarm, e o controlador principal do Shpiyard.
Pré-requisitos
Assegure que o sistema CentOS 7 esteja com sincronização de tempo, acesso à internet, fontes YUM configuradas e SELinux desativado.
Instalação do Docker
sudo yum install docker -y
sudo systemctl start docker
sudo systemctl enable docker
Instalação do Shipyard (Nó Master)
Configurar um acelerador de download, como um serviço de espelho, para otimizar a obtenção das imagens. Em seguida, baixe as imagens necessárias:
docker pull rethinkdb
docker pull microbox/etcd
docker pull shipyard/docker-proxy
docker pull swarm
docker pull dockerclub/shipyard
Modifique o script de implantação para usar a imagem chinesa e altere a porta padrão, se necessário. Por exemplo, baixe o script com wget e ajuste conforme abaixo:
wget https://shipyard-project.com/deploy
# Alterar referência da imagem para a versão chinesa
sed -i 's/shipyard\/shipyard:latest/dockerclub\/shipyard:latest/g' deploy
# Modificar a porta de acesso, ex.: para 9090
sed -i 's/PORT:-8080/PORT:-9090/g' deploy
Inicie a implantação executando o script:
sh deploy
Após a conclusão, o Shipyard estará acessível via navegador no endereço IP do servidor na porta configurada (ex.: http://IP_DO_SERVIDOR:9090). Use as credenciais padrão: usuário admin, senha shipyard. Para remover a instalação, execute:
cat deploy | ACTION=remove bash
Acessando e Gerenciando o Shipyard
Após o login, é possível visualizar e gerenciar containers, imagens e recursos. Para adicionar nós ao cluster, execute no nó worker (com Docker já instalado e em execução):
curl https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://IP_MASTER:4001 bash
Isso adicionará o nó ao cluster Swarm. Para gerenciar os containers do Shipyard, utilize comandos como:
# Parar containers específicos do Shipyard
docker stop shipyard-proxy shipyard-certs shipyard-discovery shipyard-rethinkdb shipyard-swarm-agent shipyard-swarm-manager shipyard-controller
# Reiniciar containers
docker start shipyard-proxy shipyard-certs shipyard-discovery shipyard-rethinkdb shipyard-swarm-agent shipyard-swarm-manager shipyard-controller
# Remover um nó do cluster (executar no nó worker)
curl -sSL https://shipyard-project.com/deploy | ACTION=remove bash -s