Pesquisar aqui

Mostrar mensagens com a etiqueta docker. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta docker. Mostrar todas as mensagens

sexta-feira, 21 de maio de 2021

[PT07] INFINIZER Digital: RFP

A INFINIZER Digital faz parte do grupo INFINIZER, cuja atividade está centrada na integração do mundo digital no mundo físico. Nesse sentido,  oferecemos a mais diversa variedade de soluções e serviços com os maiores níveis de segurança, escalabilidade e eficiência. Como temos um profundo conhecimento do mercado internacional, os nossos clientes podem esperar um tratamento único e especializado, de acordo com a sua respetiva indústria/setor de atividade.  


Nota: O conteúdo partilhado em sala pretendeu desenvolver os tópicos "High-level design", "Loops, getting some input" e "Variables and values" a partir da apresentação de uma situação real de desenvolvimento de evolutivos, no âmbito da disciplina de Aplicações Informáticas B, no ano lectivo 2020-21.

A apresentação foi conduzida pelos seguintes representantes:
Guilherme Marcelo
Daniel Zayika
IMPORTANTE: Podem consultar o site público em www.infinizer.tk


Esperamos que tenham gostado da apresentação e principalmente do potencial técnico apresentado.

Obrigado. Cumprimentos,
INFINIZER Digital.


sexta-feira, 8 de janeiro de 2021

[IDS] Docker + Jenkins: Como iniciar o serviço do Jenkins em docker container

Tendo o docker instalado na máquina um terminal é suficiente para iniciar o serviço.


docker run -p 8080:8080 --name=containercomjenkins jenkins/jenkins

O que significa cada argumento do comando?
  • "docker run" : O docker executa processos em containers individuais. Um container é um processo executado em um host qualquer - podendo este ser local ou remoto (no exemplo do artigo o host é local). Quando um operador é executado "docker run", o processo do container que é executado é isolado por ter seu próprio sistema de arquivos, sua própria rede e sua própria árvore de processo isolada/separada do host. 
  • "--name=[ARG]" : É uma forma de identificar o container através de um nome, sem ser pelo UUID.
  • "-p PORTA_HOST:PORTA_CONTAINER": Define as portas que devem estar abertas e qual sentido as informações devem ir.
  • "jenkins/jenkins" : É o nome da imagem. Uma vez que não existe localmente, ele vai fazer o pull da imagem ao Docker Hub.
    Uma vez iniciado, precisamos de encontrar nos logs a password para o administrador do serviço:


    Visto que o redirecionamento de portas está 8080->8080, podemos acessar a interface gráfica do serviço em http://localhost:8080/. E utilizamos a password encontrada nos logs:


    E instalamos as extensões recomendadas (costumam facilitar a utilização de ferramentas como os 'Folders' e credentials, etc.):

    Após a instalação temos a configuração inicial completa!


    Et voilà,



domingo, 6 de dezembro de 2020

[IDS] Kubernetes: O que é?

    Kubernetes (comumente estilizado como K8s) é um sistema de orquestração de containers open-source que automatiza a implantação, o dimensionamento e a gestão de aplicações em containers. Ele foi originalmente projetado pelo Google e agora é mantido pela Cloud Native Computing Foundation. Ele funciona com uma variedade de ferramentas de conteinerização, incluindo Docker.




    Kubernetes (κυβερνήτης, a palavra grega para "timoneiro" ou "piloto") foi fundado por Joe Beda, Brendan Burns e Craig McLuckie, a quem se juntaram rapidamente outros engenheiros da Google, incluindo Brian Grant e Tim Hockin, e foi anunciado pelo Google em meados de 2014. Seu desenvolvimento e design são fortemente influenciadas pelo sistema Google Borg, e muitos dos principais contribuintes do projeto trabalharam anteriormente em Borg. O codinome original para Kubernetes dentro do Google era Project Seven, uma referência aos personagens de Star Trek Sete de Nove que é um Borg "amigável". Os sete raios na roda no logotipo do Kubernetes são uma referência ao codinome.

    A versão v1.0 do Kubernetes foi lançada em 21 de julho de 2015. Juntamente com o lançamento, o Google fez uma parceria com a Linux Foundation para formar a Cloud Native Computing Foundation (CNCF) e ofereceu Kubernetes como uma tecnologia de base.

fonte: https://pt.wikipedia.org/wiki/Kubernetes

segunda-feira, 16 de novembro de 2020

[IDS] Docker: Dockerfile, imagem, distribuição, container e registry

Dockerfile reference

Docker can build images automatically by reading the instructions from a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Using docker build users can create an automated build that executes several command-line instructions in succession.

USAGE

The docker build command builds an image from a Dockerfile and a context. The build’s context is the set of files at a specified location PATH or URL. The PATH is a directory on your local filesystem. The URL is a Git repository location.

A context is processed recursively. So, a PATH includes any subdirectories and the URL includes the repository and its submodules. This example shows a build command that uses the current directory as context:

docker build --tag nomedaimagem:tag .

No directório com o trabalho apresentado em "[IDS] Estrutura do ambiente de desenvolvimento: rplotter", é criado o Dockerfile com o editor VIM:

vim Dockerfile

FROM alpine:3.7
MAINTAINER Guilherme Marcello
LABEL description="Imagem com os exemplos dos artigos do Blogger"
WORKDIR aib/
WORKDIR blogger/
COPY . . 

Para gravar o ficheiro :x

home@marcello:~$ ls
development Dockerfile

Fazemos a build da imagem com o nome aib2021marcello/blogger e a tag rplotter:

home@marcello:~$ docker build --tag aib2021marcello/blogger:rplotter .
...
...
Successfully built 80d3e5712bee
Successfully tagged aib2021marcello/blogger:rplotter

Perfeito! A nossa imagem foi criada e tem o id 80d3e5712bee! Para verificar as imagens que existem localmente usamos o seguinte comando:
 
home@marcello:~$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
aib2021marcello/blogger   rplotter            80d3e5712bee        0 minutes ago      4.21MB
alpine                    3.7                 6d1ef012b567        20 months ago       4.21MB

Sim, criamos uma "distribuição" do alpine linux personalizada com um tamanho de 4.21MB para os projectos no blogger de AIB!
Para corrermos a "distribuição" em container com o nome primeirocontainer e de forma interativa (iniciamos uma sessão em shell do container) usamos o comando:
 
home@marcello:~$ docker run --name primeirocontainer -it aib2021marcello/blogger:rplotter
/aib/blogger$ ls
Dockerfile   development
/aib/blogger$ exit
home@marcello:~$

 O que isso significa? QUALQUER pessoa com a imagem que fizemos vai ter o mesmo sistema a correr!
 E então...? QUALQUER pessoa com a imagem vai ter o mesmo ambiente, com as mesmas definições!
 Sim...e? QUALQUER pessoa com a imagem vai correr os projectos da MESMA forma!

 Problemas do tipo "preciso da versão X do java para compilar e fazer a build do projecto da empresa YYY...que chatice!" deixam de existir e assim temos maior agilidade no desenvolvimento, debug e deploy! 

 Mas tenho a minha imagem gravada localmente, como alguém pode descarregar a minha imagem e correr um container? Fazemos um push para um registry no Docker Hub, por exemplo. No Docker Hub criei uma conta com o username aib2021marcello e criei um repositório público (qualquer pessoa com docker pode fazer pull da minha imagem) com o nome blogger (sim, o mesmo nome da imagem que fizemos, aib2021marcello/blogger). Assim, podemos fazer o push da nossa imagem para o Docker Hub! 
    1. Primeiro é preciso fazer o login (autenticação) com a nossa conta do Docker Hub (com as mesmas credenciais):

home@marcello:~$ docker login
...
...
Login Succeeded

    2. Depois fazemos o push da nossa imagem:

home@marcello:~$ docker push aib2021marcello/blogger:rplotter

    3. Verificar se a imagem está no Docker Hub:

    4. Fazer pull da imagem no registry (poderia ser feito em qualquer computador com docker, sem precisar da autenticação, uma vez que o repositório é público):

home@marcello:~$ docker pull aib2021marcello/blogger:rplotter

    5. Começar a dockerizar o que quiser!

sexta-feira, 13 de novembro de 2020

[IDS] Docker: Instalação em Debian-based OS

SET UP THE REPOSITORY

1. Update the apt package index and install packages to allow apt to use a repository over HTTPS:

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

2. Add Docker’s official GPG key:

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

3. Use the following command to set up the stable repository. To add the nightly or test repository, add the word nightly or test (or both) after the word stable in the commands below.

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

INSTALL DOCKER ENGINE

1.Update the apt package index, and install the latest version of Docker Engine and containerd

 $ sudo apt-get update
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

2. Verify that Docker Engine is installed correctly by running the hello-world image.

$ sudo docker run hello-world

sábado, 7 de novembro de 2020

[IDS] Docker: O que é?

    Docker é um conjunto de produtos de plataforma como serviço (PaaS) que usam virtualização de nível de sistema operacional para entregar software em pacotes chamados contêineres. Os contêineres são isolados uns dos outros e agrupam seus próprios softwares, bibliotecas e arquivos de configuração. Eles podem se comunicar uns com os outros por meio de canais bem definidos. Todos os contêineres são executados por um único kernel do sistema operacional e, portanto, usam menos recursos do que as máquinas virtuais.



    O serviço tem níveis gratuitos e premium. O software que hospeda os contêineres é denominado Docker Engine. Foi iniciado em 2013 e é desenvolvido pela Docker, Inc. e está escrito em Golang! (https://github.com/docker/distribution)

    O docker é uma alternativa de virtualização em que o kernel da máquina hospedeira é compartilhado com a máquina virtualizada ou o software em operação, portanto um desenvolvedor pode agregar a seu software a possibilidade de levar as bibliotecas e outras dependências do seu programa junto ao software com menos perda de desempenho do que a virtualização do hardware de um servidor completo. Assim, o docker torna operações em uma infraestrutura como serviços web mais intercambiável, eficientes e flexíveis.

    Segundo uma análise da 451 Research, o "docker é uma ferramenta que pode empacotar um aplicativo e suas dependências em um recipiente virtual que pode ser executado em qualquer servidor Linux. Isso ajuda a permitir flexibilidade e portabilidade de onde o aplicativo pode ser executado, quer nas instalações, nuvem pública, nuvem privada, entre outros."