SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
O Docker, o projecto de código aberto que cria recipientes de aplicações virtualizadas, tornou-se mais
maduro, com a versão 0.8, que oferece suporte Mac OS X e melhorias de desempenho.
O Docker é uma abordagem de virtualização baseada em “containers” e open-source, que é muito diferente
do modelo hypervisor no qual se baseiam as principais soluções de virtualização empresariais, tais como a
VMware , KVM e Xen. E este deu mais um grande passo em direção à maturidade
com o lançamento bem recente da versão 0.8 Docker . Também disponível para
Mac OS, as suas principais melhorias de desempenho e muito mais “features”
estão agora disponíveis na plataforma que poderia se tornar uma parte importante
do ecossistema de virtualização, e num futuro não muito distante.
Ao contrário dos
hipervisores de virtualização que são hoje o
eco-sistema da maioria dos servidores virtuais, o
Docker Linux Container não virtualiza um sistema
operativo completo. Em vez disso, ele fornece
recipientes de aplicação virtualizados que rodam em
cima de um sistema operativo em "bare-metal". Ao
virtualizar no nível das aplicações, o Docker pode
oferecer maior portabilidade, eficiência e segurança.
O conceito não é novo. O Docker é essencialmente uma extensão de Linux Containers , uma infra-estrutura
de virtualização baseada em tecnologia de “userspace” que está disponível como parte do código fonte do
Linux há anos. Mas o Docker, um projecto open source que viu o seu primeiro lançamento em março de
2013, visa a modernização do modelo de virtualização assente em “containers”, simplificando a sua
implementação e adequando-o para atender às demandas de computação em nuvem e soluções de PaaS
(Plataform-as-a-Service).
Com o lançamento do Docker 0,8 em 4 de fevereiro, a plataforma oferece agora suporte oficial para Mac OS
X. E também beneficia de uma série de atualizações
que melhoram o desempenho, incluindo a redução na
memória que o sistema utiliza, a infra-estrutura de
suporte e uma diminuição do tempo necessário para
construir aplicativos e iniciar o “daemon” do Docker.
Docker 0.8 também introduz um novo modelo de
lançamento de novas versões. De agora em diante, o
projecto vai lançar uma nova versão a cada mês, com
Re-pensando a virtualização através de Open-Source Linux Containers
1
base atualizações de versão em uma linha do tempo, em vez de recursos. O Docker também vai adoptar
convenções de numeração mais simples para os lançamentos.
Ambas as mudanças, juntamente com tudo o mais na versão mais recente Docker, apontam para a crescente
maturidade da Docker. O suporte ao sistema operativo Mac OS X e uma cadência de liberação padronizado
não significa que o Docker está pronto para o horário nobre, e o projeto ainda está longe de ser a fase de
adoção mainstream. Mas chegou muito longe nos menos de 12 meses desde a sua primeira versão, e, o
quando ele está pronto para a produção, que poderá vir a afetar drasticamente a forma como as
organizações podem vir a re-pensar e implementar a virtualização. (..).
Artigo de Christopher Tozzi | The Guy VAR
10 de fevereiro de 2014
O link do artigo original em Docker Open-Source Container.
O Docker, e a tecnologia de Linux Containers, irão certamente obrigar a repensar a virtualização no data-
center, sobretudo porque o Docker implementa mais portabilidade, rapidez de execução e na
implementação de infra-estruturas de suporte a aplicações, que as tecnologias de virtualização actuais. E
estes atributos são cada vez mais importantes, e até estratégicos nas infra-estruturas empresariais, e
reforçam as estratégias de PaaS (Plataform-as-a-Service), que prometem revolucionar a forma e rapidez
com que as aplicações são diponibilizadas para os utilizadores.
Francisco Gonçalves "in" 11Feb2014
Em ambientes de desenvolvimento de software recentes, implementei Linux Containers, usando a
tecnologia Docker, para suportar uma plataforma de desenvolvimento Java e javascript (client-side),
nomeadamente o Wavemaker, que é suportado pelo Web server TomCat. Este Linux Container inclui a base
de dados MySql e o PhpMyAdmin, uma ferramenta imprescindível de administração de BD MySql.
Para demonstar os atributos de portabilidade, rapidez de execução e eficiência na implementação de
aplicações e serviços sobre um qualquer "bare-metal" encontrarão abaixo alguns scripts que irão criar de
forma automatizada um servidor de desenvolvimento WaveMaker completo e pronto a explorar, como
atrás descrito.
Passando à parte mais prática !
Re-pensando a virtualização através de Open-Source Linux Containers
2
Vamos construir um contentor com o Docker, que armazenará um servidor web e aplicação RAD Development
Studio da Wavemaker, com suporte de base de dados MySql e phpmyadmin. E pronto a executar! Tudo num único
contentor portátil e criado automáticamente através da execução de um script ou Dockerfile. Vamos a isso !!?
Partindo do pressuposto de que dispõe de um host, fisico ou virtual em Linux / Unix, o primeiro passo será a
instalação do executivo Docker.io.
As instruções para esta instalação podem ser encontradas na home page do Docker .
Aqui vamos assumir que dispomos de um host virtual de base Debian ou Ubuntu, para facilitar o exemplo.
1. Instalação do Docker (Ubuntu 13.04) - Para outras versões de Ubuntu consultar em Docker!
# install the backported kernel
sudo apt-get update
sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
# reboot
sudo reboot
Preparar repositório do docker e instalar :
# sudo sh -c "echo deb http://get.docker.io/ubuntu docker main
> /etc/apt/sources.list.d/docker.list"
# sudo apt-get update
# sudo apt-get install lxc-docker
(instalação completa - fácil não!? )
2. Criação de um container com o WaveMaker Studio e respectiva configuração
# mkdir WaveCloud
# cd WaveCloud
# mkdir resources
# vi Dockerfile
Re-pensando a virtualização através de Open-Source Linux Containers
3
# Written by Francisco Gonçalves @ Softelabs.com, Portugal
# in 09Feb2014
#
FROM ubuntu:precise
MAINTAINER Francisco Goncalves "fgoncalves@softelabs.com"
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" >> /etc/apt/
sources.list
RUN apt-get -y update
RUN locale-gen pt_PT pt_PT.UTF-8
ENV LANG pt_PT.UTF-8
ENV LC_ALL pt_PT.UTF-8
RUN dpkg-reconfigure locales
RUN echo "mysql-server mysql-server/root_password password donuts" | debconf-set-
selections
RUN echo "mysql-server mysql-server/root_password_again password donuts" | debconf-
set-selections
RUN echo "mysql-server mysql-server/root_password seen true" | debconf-set-selections
RUN echo "mysql-server mysql-server/root_password_again seen true" | debconf-set-
selections
RUN apt-get install -y wget vim openssh-server openssh-client openjdk-6-jdk
# Install Apache
Re-pensando a virtualização através de Open-Source Linux Containers
4
RUN apt-get install -y apache2
# Install php
RUN apt-get install -y php5 libapache2-mod-php5 php5-mcrypt php5-mysql
RUN printf ynnn1n | apt-get install -y phpmyadmin
RUN sed -i "s#// $cfg['Servers'][$i]['AllowNoPassword'] =
TRUE;#$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#g" /etc/phpmyadmin/
config.inc.php
RUN wget https://s3.amazonaws.com/open-beta-6....0M3_amd64.deb
RUN dpkg -i wavemaker_6.7.0M3_amd64.deb
#
ADD resources/cfgmysql.sh /tmp/cfgmysql.sh
RUN chmod +x /tmp/cfgmysql.sh
RUN /tmp/cfgmysql.sh
#
ADD resources/start.sh /tmp/start.sh
RUN chmod +x /tmp/start.sh
RUN /tmp/start.sh
#
ADD resources/passuser.txt /opt/passuser.txt
#RUN useradd fgoncalves
#RUN passwd fgoncalves < /opt/passuser.txt
RUN useradd fgoncalves
Re-pensando a virtualização através de Open-Source Linux Containers
5
RUN passwd root < /opt/passuser.txt
RUN passwd fgoncalves < /opt/passuser.txt
ADD resources/startup.sh /opt/startup.sh
RUN chmod +x /opt/startup.sh
#
#VOLUME /var/lib/mysql
#VOLUME /root/Wavemaker/projects
EXPOSE 8094
EXPOSE 8080
EXPOSE 80
EXPOSE 22
#
CMD ["/bin/bash", "/opt/startup.sh"]
Criar os seguintes scripts invocados pelo Dockerfile acima :
# cd resources
#
# vi start.sh
#
Re-pensando a virtualização através de Open-Source Linux Containers
6
#!/bin/bash
#
# Prepare ssh server
apt-get clean
#
mkdir -p /var/run/sshd ; chmod -rx /var/run/sshd
# http://stackoverflow.com/questions/2...g-kexinit-sent
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# Bad security, add a user and sudo instead!
#sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
# http://stackoverflow.com/questions/1...sshd-on-docker
#sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
#sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
#service ssh restart
#
# Set apoache2 with SSL KEY
#
#
#chown -R www-data:www-data /var/www/owncloud
#a2ensite default
#a2enmod rewrite ssl
#2enmod ssl
#
#ulimit -n 826944 826914
#
HOSTLINE=$(echo $(ip -f inet addr show eth0 | grep 'inet' | awk '{ print $2 }' | cut -d/ -f1)
$(hostname) $(hostname -s))
Re-pensando a virtualização através de Open-Source Linux Containers
7
# vi startup.sh
#
#!/bin/bash
# Written by Francisco Gonçalves @ Softelabs.com, Portugal
# in 09Feb2014
#
sed -i "s#// $cfg['Servers'][$i]['AllowNoPassword'] =
TRUE;#$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#g" /etc/phpmyadmin/
config.inc.php
/usr/bin/mysqld_safe &
echo "MySql is up and running "
#
# Created Dir for ssh process-id to start with
#mkdir /var/run/sshd
#
/usr/sbin/sshd &
#
echo "ssh started ok.."
#
#ulimit -n 826944 826914
#
/opt/wavemaker-6.7.0M3/bin/wavemaker.sh start &
#
echo "WaveMaker Studio Container is up and running "
#
Re-pensando a virtualização através de Open-Source Linux Containers
8
/usr/sbin/apache2ctl -D FOREGROUND
#
echo "Apache2 & Phpp Admin Up and running "
echo " "
echo "And that's all done... "
#
# vi cfgmysql.sh
#
#!/bin/bash
# Written by Francisco Gonçalves @ Softelabs.com, Portugal
# in 09Feb2014
#
sed -i -e"s/^bind-addresss*=s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
sed -i 's/bind-address = 0.0.0.0/#bind-address = 0.0.0.0/g' /etc/mysql/my.cnf
#
sed -i 's/.*skip-external-locking*/&nskip-name-resolve/' /etc/mysql/my.cnf
#
sed -i "s#// $cfg['Servers'][$i]['AllowNoPassword'] =
TRUE;#$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#g" /etc/phpmyadmin/
config.inc.php
#
/usr/bin/mysqld_safe &
#
sleep 5s
#
Re-pensando a virtualização através de Open-Source Linux Containers
9
echo "CREATE USER 'admin'@'localhost' IDENTIFIED BY 'donuts';" | mysql -uroot -
pdonuts
sleep 5s
echo "GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;" | mysql -
uroot -pdonuts
sleep 5s
echo "GRANT ALL ON *.* TO 'admin'@'%' IDENTIFIED BY 'donuts' WITH GRANT
OPTION;" | mysql -uroot -pdonuts
sleep 5s
echo "CREATE USER 'wavedev'@'localhost' IDENTIFIED BY 'donuts'" | mysql -uroot -
pdonuts
sleep 5s
echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('donuts');" | mysql -uroot -
pdonuts
sleep 5s
#
echo "done database setup for wavemaker development environment.."
#
# vi passuser.txt
( modificar a password da root para este container )
password
password
Criação do Container…
Re-pensando a virtualização através de Open-Source Linux Containers
10
# cd WaveCloud
# docker build -t Demo/WaveCloudv67 .
Após terminar a execução deste script contido no Dockerfile que acima editou deverá ter sido criado um
container.
Para visualizar a imagem do container agora criado use o comando:
# docker images
Para “correr” o container usar o comando, criando um script conforme se segue :
dockid=$(docker run -d -p 8094:8094 -p 8080:8080 -p 800:80 3406:3306 -p 100:22 Demo/
WaveCloudv67 /opt/startup.sh)
#
echo "Instance id = $dockid "
sleep 30
#
echo "docker logs $dockid" > logcheck.sh
chmod 777 logcheck.sh
docker logs $dockid
#
docker ps
Pode ver todos os containers em execução através do comando:
# docker ps
Re-pensando a virtualização através de Open-Source Linux Containers
11
Pode remover parar ou iniciar um container:
# docker start id-container
#docker stop id_container
Ou remover um container:
# docker rmi id-container
Após instalado e “running” o container do Wavemaker Studio, bastará que no seu Browser use o url no formato
que se segue:
NOTA Importante : Tal como a nova versão do Docker 0.8, já suporta o MAC O/S, também o WaveMaker
suporta este sistema operativo.
Para invocar o WaveMaker Studio:
http://your-ipaddress:8094/wavemaker
Para invocar o phpmyadmin :
http://your-ipaddress:800/phpmyadmin
Re-pensando a virtualização através de Open-Source Linux Containers
12
And that's all folks .....
By Francisco Gonçalves @ Softelabs.com in 11Feb2014
IT Architect & Open-Source Solutions Advisor
( fgoncalves@softelabs.com )
Re-pensando a virtualização através de Open-Source Linux Containers
13

Mais conteúdo relacionado

Mais procurados (20)

Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Docker compose
Docker composeDocker compose
Docker compose
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de Docker
 
Crud
CrudCrud
Crud
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 

Semelhante a Docker 0.8 suporta Mac OS X

Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Marcel Cattaneo
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em containerThaise Dantas
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresCarlos Andre Fernandes
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Eliel Simoncelo
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesWillian Azevedo
 

Semelhante a Docker 0.8 suporta Mac OS X (20)

Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker
DockerDocker
Docker
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em container
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e Kubernetes
 

Mais de Francisco Gonçalves

O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...
O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...
O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...Francisco Gonçalves
 
20140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp02
20140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp0220140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp02
20140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp02Francisco Gonçalves
 
A automatização e virtualização do seu negócio
A automatização e virtualização do seu negócioA automatização e virtualização do seu negócio
A automatização e virtualização do seu negócioFrancisco Gonçalves
 
O rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudO rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudFrancisco Gonçalves
 
Scale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbScale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbFrancisco Gonçalves
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiFrancisco Gonçalves
 
Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Francisco Gonçalves
 
MariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationMariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationFrancisco Gonçalves
 
Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014
Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014
Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014Francisco Gonçalves
 
Open Source Vantagens E Beneficios - By Softelabs
Open Source   Vantagens E Beneficios - By SoftelabsOpen Source   Vantagens E Beneficios - By Softelabs
Open Source Vantagens E Beneficios - By SoftelabsFrancisco Gonçalves
 

Mais de Francisco Gonçalves (20)

Ulteo virtual desktop system
Ulteo virtual desktop systemUlteo virtual desktop system
Ulteo virtual desktop system
 
O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...
O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...
O que é o SecondLife? Sabia que este pode catalisar a colaboração na sua empr...
 
Porque a-burocracia-deve-morrer
Porque a-burocracia-deve-morrerPorque a-burocracia-deve-morrer
Porque a-burocracia-deve-morrer
 
20140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp02
20140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp0220140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp02
20140128 webinar-get-more-out-of-mysql-with-tokudb-140319063324-phpapp02
 
A automatização e virtualização do seu negócio
A automatização e virtualização do seu negócioA automatização e virtualização do seu negócio
A automatização e virtualização do seu negócio
 
O rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudO rad da wave maker developing for the cloud
O rad da wave maker developing for the cloud
 
Scale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbScale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria db
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
Teamwork Web Application
Teamwork Web ApplicationTeamwork Web Application
Teamwork Web Application
 
Node Js
Node JsNode Js
Node Js
 
Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !
 
MariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationMariaDB Galera Cluster presentation
MariaDB Galera Cluster presentation
 
Linux capacity planning
Linux capacity planningLinux capacity planning
Linux capacity planning
 
Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014
Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014
Wavemaker RAD for the Cloud with CloudJee - Future Direction 2014
 
Juju on ubuntu cloud
Juju on ubuntu cloudJuju on ubuntu cloud
Juju on ubuntu cloud
 
Cloud foundry and openstackcloud
Cloud foundry and openstackcloudCloud foundry and openstackcloud
Cloud foundry and openstackcloud
 
Ubuntu cloud infrastructures
Ubuntu cloud infrastructuresUbuntu cloud infrastructures
Ubuntu cloud infrastructures
 
Openstack deployment-with ubuntu
Openstack deployment-with ubuntuOpenstack deployment-with ubuntu
Openstack deployment-with ubuntu
 
Desk top virtual_gbanif
Desk top virtual_gbanifDesk top virtual_gbanif
Desk top virtual_gbanif
 
Open Source Vantagens E Beneficios - By Softelabs
Open Source   Vantagens E Beneficios - By SoftelabsOpen Source   Vantagens E Beneficios - By Softelabs
Open Source Vantagens E Beneficios - By Softelabs
 

Docker 0.8 suporta Mac OS X

  • 1. O Docker, o projecto de código aberto que cria recipientes de aplicações virtualizadas, tornou-se mais maduro, com a versão 0.8, que oferece suporte Mac OS X e melhorias de desempenho. O Docker é uma abordagem de virtualização baseada em “containers” e open-source, que é muito diferente do modelo hypervisor no qual se baseiam as principais soluções de virtualização empresariais, tais como a VMware , KVM e Xen. E este deu mais um grande passo em direção à maturidade com o lançamento bem recente da versão 0.8 Docker . Também disponível para Mac OS, as suas principais melhorias de desempenho e muito mais “features” estão agora disponíveis na plataforma que poderia se tornar uma parte importante do ecossistema de virtualização, e num futuro não muito distante. Ao contrário dos hipervisores de virtualização que são hoje o eco-sistema da maioria dos servidores virtuais, o Docker Linux Container não virtualiza um sistema operativo completo. Em vez disso, ele fornece recipientes de aplicação virtualizados que rodam em cima de um sistema operativo em "bare-metal". Ao virtualizar no nível das aplicações, o Docker pode oferecer maior portabilidade, eficiência e segurança. O conceito não é novo. O Docker é essencialmente uma extensão de Linux Containers , uma infra-estrutura de virtualização baseada em tecnologia de “userspace” que está disponível como parte do código fonte do Linux há anos. Mas o Docker, um projecto open source que viu o seu primeiro lançamento em março de 2013, visa a modernização do modelo de virtualização assente em “containers”, simplificando a sua implementação e adequando-o para atender às demandas de computação em nuvem e soluções de PaaS (Plataform-as-a-Service). Com o lançamento do Docker 0,8 em 4 de fevereiro, a plataforma oferece agora suporte oficial para Mac OS X. E também beneficia de uma série de atualizações que melhoram o desempenho, incluindo a redução na memória que o sistema utiliza, a infra-estrutura de suporte e uma diminuição do tempo necessário para construir aplicativos e iniciar o “daemon” do Docker. Docker 0.8 também introduz um novo modelo de lançamento de novas versões. De agora em diante, o projecto vai lançar uma nova versão a cada mês, com Re-pensando a virtualização através de Open-Source Linux Containers 1
  • 2. base atualizações de versão em uma linha do tempo, em vez de recursos. O Docker também vai adoptar convenções de numeração mais simples para os lançamentos. Ambas as mudanças, juntamente com tudo o mais na versão mais recente Docker, apontam para a crescente maturidade da Docker. O suporte ao sistema operativo Mac OS X e uma cadência de liberação padronizado não significa que o Docker está pronto para o horário nobre, e o projeto ainda está longe de ser a fase de adoção mainstream. Mas chegou muito longe nos menos de 12 meses desde a sua primeira versão, e, o quando ele está pronto para a produção, que poderá vir a afetar drasticamente a forma como as organizações podem vir a re-pensar e implementar a virtualização. (..). Artigo de Christopher Tozzi | The Guy VAR 10 de fevereiro de 2014 O link do artigo original em Docker Open-Source Container. O Docker, e a tecnologia de Linux Containers, irão certamente obrigar a repensar a virtualização no data- center, sobretudo porque o Docker implementa mais portabilidade, rapidez de execução e na implementação de infra-estruturas de suporte a aplicações, que as tecnologias de virtualização actuais. E estes atributos são cada vez mais importantes, e até estratégicos nas infra-estruturas empresariais, e reforçam as estratégias de PaaS (Plataform-as-a-Service), que prometem revolucionar a forma e rapidez com que as aplicações são diponibilizadas para os utilizadores. Francisco Gonçalves "in" 11Feb2014 Em ambientes de desenvolvimento de software recentes, implementei Linux Containers, usando a tecnologia Docker, para suportar uma plataforma de desenvolvimento Java e javascript (client-side), nomeadamente o Wavemaker, que é suportado pelo Web server TomCat. Este Linux Container inclui a base de dados MySql e o PhpMyAdmin, uma ferramenta imprescindível de administração de BD MySql. Para demonstar os atributos de portabilidade, rapidez de execução e eficiência na implementação de aplicações e serviços sobre um qualquer "bare-metal" encontrarão abaixo alguns scripts que irão criar de forma automatizada um servidor de desenvolvimento WaveMaker completo e pronto a explorar, como atrás descrito. Passando à parte mais prática ! Re-pensando a virtualização através de Open-Source Linux Containers 2
  • 3. Vamos construir um contentor com o Docker, que armazenará um servidor web e aplicação RAD Development Studio da Wavemaker, com suporte de base de dados MySql e phpmyadmin. E pronto a executar! Tudo num único contentor portátil e criado automáticamente através da execução de um script ou Dockerfile. Vamos a isso !!? Partindo do pressuposto de que dispõe de um host, fisico ou virtual em Linux / Unix, o primeiro passo será a instalação do executivo Docker.io. As instruções para esta instalação podem ser encontradas na home page do Docker . Aqui vamos assumir que dispomos de um host virtual de base Debian ou Ubuntu, para facilitar o exemplo. 1. Instalação do Docker (Ubuntu 13.04) - Para outras versões de Ubuntu consultar em Docker! # install the backported kernel sudo apt-get update sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring # reboot sudo reboot Preparar repositório do docker e instalar : # sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" # sudo apt-get update # sudo apt-get install lxc-docker (instalação completa - fácil não!? ) 2. Criação de um container com o WaveMaker Studio e respectiva configuração # mkdir WaveCloud # cd WaveCloud # mkdir resources # vi Dockerfile Re-pensando a virtualização através de Open-Source Linux Containers 3
  • 4. # Written by Francisco Gonçalves @ Softelabs.com, Portugal # in 09Feb2014 # FROM ubuntu:precise MAINTAINER Francisco Goncalves "fgoncalves@softelabs.com" RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" >> /etc/apt/ sources.list RUN apt-get -y update RUN locale-gen pt_PT pt_PT.UTF-8 ENV LANG pt_PT.UTF-8 ENV LC_ALL pt_PT.UTF-8 RUN dpkg-reconfigure locales RUN echo "mysql-server mysql-server/root_password password donuts" | debconf-set- selections RUN echo "mysql-server mysql-server/root_password_again password donuts" | debconf- set-selections RUN echo "mysql-server mysql-server/root_password seen true" | debconf-set-selections RUN echo "mysql-server mysql-server/root_password_again seen true" | debconf-set- selections RUN apt-get install -y wget vim openssh-server openssh-client openjdk-6-jdk # Install Apache Re-pensando a virtualização através de Open-Source Linux Containers 4
  • 5. RUN apt-get install -y apache2 # Install php RUN apt-get install -y php5 libapache2-mod-php5 php5-mcrypt php5-mysql RUN printf ynnn1n | apt-get install -y phpmyadmin RUN sed -i "s#// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#g" /etc/phpmyadmin/ config.inc.php RUN wget https://s3.amazonaws.com/open-beta-6....0M3_amd64.deb RUN dpkg -i wavemaker_6.7.0M3_amd64.deb # ADD resources/cfgmysql.sh /tmp/cfgmysql.sh RUN chmod +x /tmp/cfgmysql.sh RUN /tmp/cfgmysql.sh # ADD resources/start.sh /tmp/start.sh RUN chmod +x /tmp/start.sh RUN /tmp/start.sh # ADD resources/passuser.txt /opt/passuser.txt #RUN useradd fgoncalves #RUN passwd fgoncalves < /opt/passuser.txt RUN useradd fgoncalves Re-pensando a virtualização através de Open-Source Linux Containers 5
  • 6. RUN passwd root < /opt/passuser.txt RUN passwd fgoncalves < /opt/passuser.txt ADD resources/startup.sh /opt/startup.sh RUN chmod +x /opt/startup.sh # #VOLUME /var/lib/mysql #VOLUME /root/Wavemaker/projects EXPOSE 8094 EXPOSE 8080 EXPOSE 80 EXPOSE 22 # CMD ["/bin/bash", "/opt/startup.sh"] Criar os seguintes scripts invocados pelo Dockerfile acima : # cd resources # # vi start.sh # Re-pensando a virtualização através de Open-Source Linux Containers 6
  • 7. #!/bin/bash # # Prepare ssh server apt-get clean # mkdir -p /var/run/sshd ; chmod -rx /var/run/sshd # http://stackoverflow.com/questions/2...g-kexinit-sent #ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key # Bad security, add a user and sudo instead! #sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config # http://stackoverflow.com/questions/1...sshd-on-docker #sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config #sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config #service ssh restart # # Set apoache2 with SSL KEY # # #chown -R www-data:www-data /var/www/owncloud #a2ensite default #a2enmod rewrite ssl #2enmod ssl # #ulimit -n 826944 826914 # HOSTLINE=$(echo $(ip -f inet addr show eth0 | grep 'inet' | awk '{ print $2 }' | cut -d/ -f1) $(hostname) $(hostname -s)) Re-pensando a virtualização através de Open-Source Linux Containers 7
  • 8. # vi startup.sh # #!/bin/bash # Written by Francisco Gonçalves @ Softelabs.com, Portugal # in 09Feb2014 # sed -i "s#// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#g" /etc/phpmyadmin/ config.inc.php /usr/bin/mysqld_safe & echo "MySql is up and running " # # Created Dir for ssh process-id to start with #mkdir /var/run/sshd # /usr/sbin/sshd & # echo "ssh started ok.." # #ulimit -n 826944 826914 # /opt/wavemaker-6.7.0M3/bin/wavemaker.sh start & # echo "WaveMaker Studio Container is up and running " # Re-pensando a virtualização através de Open-Source Linux Containers 8
  • 9. /usr/sbin/apache2ctl -D FOREGROUND # echo "Apache2 & Phpp Admin Up and running " echo " " echo "And that's all done... " # # vi cfgmysql.sh # #!/bin/bash # Written by Francisco Gonçalves @ Softelabs.com, Portugal # in 09Feb2014 # sed -i -e"s/^bind-addresss*=s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf sed -i 's/bind-address = 0.0.0.0/#bind-address = 0.0.0.0/g' /etc/mysql/my.cnf # sed -i 's/.*skip-external-locking*/&nskip-name-resolve/' /etc/mysql/my.cnf # sed -i "s#// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;#g" /etc/phpmyadmin/ config.inc.php # /usr/bin/mysqld_safe & # sleep 5s # Re-pensando a virtualização através de Open-Source Linux Containers 9
  • 10. echo "CREATE USER 'admin'@'localhost' IDENTIFIED BY 'donuts';" | mysql -uroot - pdonuts sleep 5s echo "GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;" | mysql - uroot -pdonuts sleep 5s echo "GRANT ALL ON *.* TO 'admin'@'%' IDENTIFIED BY 'donuts' WITH GRANT OPTION;" | mysql -uroot -pdonuts sleep 5s echo "CREATE USER 'wavedev'@'localhost' IDENTIFIED BY 'donuts'" | mysql -uroot - pdonuts sleep 5s echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('donuts');" | mysql -uroot - pdonuts sleep 5s # echo "done database setup for wavemaker development environment.." # # vi passuser.txt ( modificar a password da root para este container ) password password Criação do Container… Re-pensando a virtualização através de Open-Source Linux Containers 10
  • 11. # cd WaveCloud # docker build -t Demo/WaveCloudv67 . Após terminar a execução deste script contido no Dockerfile que acima editou deverá ter sido criado um container. Para visualizar a imagem do container agora criado use o comando: # docker images Para “correr” o container usar o comando, criando um script conforme se segue : dockid=$(docker run -d -p 8094:8094 -p 8080:8080 -p 800:80 3406:3306 -p 100:22 Demo/ WaveCloudv67 /opt/startup.sh) # echo "Instance id = $dockid " sleep 30 # echo "docker logs $dockid" > logcheck.sh chmod 777 logcheck.sh docker logs $dockid # docker ps Pode ver todos os containers em execução através do comando: # docker ps Re-pensando a virtualização através de Open-Source Linux Containers 11
  • 12. Pode remover parar ou iniciar um container: # docker start id-container #docker stop id_container Ou remover um container: # docker rmi id-container Após instalado e “running” o container do Wavemaker Studio, bastará que no seu Browser use o url no formato que se segue: NOTA Importante : Tal como a nova versão do Docker 0.8, já suporta o MAC O/S, também o WaveMaker suporta este sistema operativo. Para invocar o WaveMaker Studio: http://your-ipaddress:8094/wavemaker Para invocar o phpmyadmin : http://your-ipaddress:800/phpmyadmin Re-pensando a virtualização através de Open-Source Linux Containers 12
  • 13. And that's all folks ..... By Francisco Gonçalves @ Softelabs.com in 11Feb2014 IT Architect & Open-Source Solutions Advisor ( fgoncalves@softelabs.com ) Re-pensando a virtualização através de Open-Source Linux Containers 13