(kernel) e isola as dependências (libs e configurações) em pacotes (containers) Containers -> Um pacote portátil PaaS -> (Software, Infrastructure, Platform) as a Service
sudo groupadd docker # cria um novo grupo p rodar sem sudo sudo usermod -aG docker $USER # adiciona seu usuário systemctl start docker.service # inicia o serviço docker systemctl enable docker.service # habilita o serviço na inicialização do sistema -> Logout e Login
que seja gerado o novo conteiner: docker run -it <user/repositorio:tag comando_shell> ╭─marcelo@inspiron ~/workspace/dockerfiles/alpine3-ruby2.7-node-yarn‹master› ╰─➤ docker run -it skygvinn/alpine3-ruby2.7-nodejs:v1.1 bash
que será o snapshot desse conteúdo que geramos com o comando: docker commit -a “author” -m “msg” container_id <user/repositorio:tag> ╭─marcelo@inspiron ~/workspace/dockerfiles/alpine3-ruby2.7-node-yarn‹master› ╰─➤ docker commit -a ‘Marcelo Toledo - Skygvinn - < [email protected]>’ -m ‘Mensagem’ 33c34108e934 skygvinn/alpine3-ruby2.7-nodejs:v1.1 Como descobrir o ID do contêiner? ╭─marcelo@inspiron ~/workspace/dockerfiles/alpine3-ruby2.7-node-yarn‹master› ╰─➤ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6536b9014c9e skygvinn/ruby2.7:v1.1 "rails s" 7 days Up 7 days 3000/tcp deals
um contêiner a partir de uma imagem (-d -it -e -v -p) $ docker exec # roda num contêiner em (-it) $ docker exec -it <id> bash # executa comando no shell $ docker ps # exibe contêiners locais (-a) $ docker rm # remove um contêiner $ docker run -d -p 80 nginx $ docker stop # para um contêiner em execução $ docker kill # mata um contêiner em execução abruptamente $ docker inspect # exibe informações sobre um contêiner ou imagem
a aplicação completa $ docker-compose up db elasticsearch redis # sobe apenas as dependências $ docker-compose ps -a # exibe contêiners executando $ docker-compose down # derruba os contêiners $ docker-compose run --rm server rails db:create db:setup # prepara o banco de dados e quando terminar sai do contêiner Extra
# prepara tudo para execução local da aplicação • script/reset # limpa e recria tudo novamente • script/server # sobe o rails server • script/console # entra no rails console • script/bash # entra no shell do contêiner • script/testes # executa os testes com rspec