Skip to content

Instantly share code, notes, and snippets.

@tiagofrancafernandes
Last active February 26, 2024 05:54
Show Gist options
  • Save tiagofrancafernandes/f587cb429a006391309b49e018ce305d to your computer and use it in GitHub Desktop.
Save tiagofrancafernandes/f587cb429a006391309b49e018ce305d to your computer and use it in GitHub Desktop.
dev-docker-snippets

#----------------------------------------------------

## Reiniciar todas as instancias do ambiente atual
for cid in $(docker-compose ps |grep _run_ |awk '{print $1}'); do docker stop $cid; done; docker-compose restart


#----------------------------------------------------
curl https://gist.githubusercontent.com/tiagofrancafernandes/9c1758936118a7f677ccf03f44ae3927/raw/install.sh | bash
#----------------------------------------------------
Parar vários baseado no nome do container (exemplo '_run_'):
#https://stackoverflow.com/a/56998487/11716408

sudo docker ps --filter name=next* --filter status=running -aq | sudo xargs docker stop
#----------------------------------------------------
#Conteúdo sobre container com Postgres (ver se o conteúdo é bom)
https://levelup.gitconnected.com/creating-and-filling-a-postgres-db-with-docker-compose-e1607f6f882f
#----------------------------------------------------

#Via apt ubuntu
https://www.digitalocean.com/community/tutorials/como-instalar-e-usar-o-docker-no-ubuntu-18-04-pt
#--------------------------------------------------
#Install by sh script
https://github.com/docker/docker-install

curl -fsSL https://get.docker.com -o /tmp/get-docker.sh && sudo sh /tmp/get-docker.sh && \
sudo usermod -aG docker $USER && newgrp docker && \
newgrp docker && \
sudo curl -L "github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose && \
sudo chmod +x /usr/bin/docker-compose

#Install docker-compose
sudo curl -L "github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose
#----------------------------------------------------

#Post Install
#Create the docker group.
sudo groupadd docker

#Add your user to the docker group.
sudo usermod -aG docker $USER

#Reload a Linux user's group assignments without logging out
# Entrar no grupo sem precisar fazer logout
#https://superuser.com/a/1132361/1261674
newgrp docker

## Em 1 linha (no usuário que quer adicionar ao docker group)
#----------------------------------------------------
sudo groupadd docker;sudo usermod -aG docker $USER && newgrp docker
#----------------------------------------------------
#Testar um Dockerfile?
docker build -t test .
#----------------------------------------------------
#Ótimo dockerfile para se inspirar
https://hub.docker.com/r/leandrocp/pentaho-server/dockerfile/
#----------------------------------------------------
#Install Compose on Linux systems
https://docs.docker.com/v17.09/compose/install/#install-compose
#----------------------------------------------------
#----------------------------------------------------

#Bom pra usar no Laravel (php 7.1)
https://github.com/ineat/docker-php-nginx-postgres-composer
#----------------------------------------------------
#CRIANDO UM REGISTRY LOCAL How to push a docker image to a private repository - Stack Overflow
https://stackoverflow.com/questions/28349392/how-to-push-a-docker-image-to-a-private-repository
#----------------------------------------------------
#Laravel
https://github.com/juniorb2ss/laravel-docker-compose
https://medium.com/@juniorb2s/docker-compose-e-laravel-e32b683b2486
#----------------------------------------------------
#Backup and restore a docker container
https://www.thegeekdiary.com/how-to-backup-and-restore-docker-containers/
#postgresql
http://dev.tiagofranca.com/notas/devsql_postgresql
#----------------------------------------------------

Cara, isso aqui explica tudo de docker -> https://www.youtube.com/watch?v=0cDj7citEjE&list=PLf-O3X2-mxDk1MnJsejJwqcrDC5kDtXEb
YouTube
LINUXtips
[ LinuxTips ] - Docker Tutorial #1 - Docker, Containers, Images e muito mais!


#----------------------------------------------------
#Expose a ports
https://stackoverflow.com/questions/49323225/expose-all-ports-for-a-docker-image
--network host

#Exemplo
docker run -dit -P --network host -v /:/host_path --name testeub -d backup_ubuntu_10_04_lts
#----------------------------------------------------
###Criar volume #https://docs.docker.com/engine/reference/commandline/volume_create/
docker volume create nome_volume

###Listar volumes
docker volume ls

###Iniciando um projeto com pasta local
docker run -dit -P --name temp_name -v /local/path/:/volume/path/ beevelop/cordova bash

###Executando um binário em um container em execução
docker exec -it nome_temp01 bash

###Detalhes de um container
docker inspect nome_temp01

###Para um container
docker container stop nome_temp01

###Remove um container
docker container rm nome_temp01

#Usar pasta local para container
docker run -dit -P --name temp_name -v /local/path/:/volume/path/ beevelop/cordova bash

#Usar pasta local para container com porta copmpartilhada do container para o host
{
https://forums.docker.com/t/using-localhost-for-to-access-running-container/3148
https://stackoverflow.com/questions/30109037/how-can-i-forward-localhost-port-on-my-container-to-localhost-on-my-host
}
docker run -dit -P --name temp_name --expose 8000 -p 8000:8000 -v /local/path/:/volume/path/ beevelop/cordova bash

###Executar um projeto temporario sem volume (NÃO RECOMENDADO)
docker run -ditv /pasta/local/ --name nome_temp02 beevelop/cordova /bin/bash

##Excutar temporario e remover apos sair
docker run --name tmpubuntu -dit --rm -v $(pwd)/:/work_path/ ubuntu:18.04 bash
docker run --name tempubuntu-$(date +%Y-%m-%d_%H-%M-%S) -dit --rm -v $(pwd)/:/work_path/ ubuntu:18.04 bash

docker run --name tmpubuntu -dit -P --rm --expose 80 -p 80:80 -v $(pwd)/nginx_default:/etc/nginx/sites-available/default -v $(pwd)/:/var/www/html/ tiagofranca/tfcomwebserver:20-01-28 bash
#----------------------------------------------------
## Docker aliases
alias dockerps='docker ps'
alias dockerpsa='docker ps -a'
alias dockerpsgrep='docker ps |grep'
alias dockerpsagrep='docker ps -a|grep'
alias dk-='sudo docker-compose'
alias dk-run-rm='sudo docker-compose run --rm'
alias dk-php='sudo docker-compose run --rm app php'
alias dk-composer='sudo docker-compose run --rm app composer'
alias dk-artisan='sudo docker-compose run --rm app php artisan'
alias dk-tinker='sudo docker-compose run --rm app php artisan tinker'
alias dk-bash='if [ -f ./_dev_dir/bash_alises.sh ]; then sudo docker-compose run --rm app bash --rcfile _dev_dir/bash_alises.sh; else sudo docker-compose run --rm app bash ;fi'
#alias dk-run-rm-app='sudo docker-compose run --rm app bash --rcfile _dev_dir/bash_alises.sh'
alias dk-run-rm-app='if [ -f ./_dev_dir/bash_alises.sh ]; then sudo docker-compose run --rm app bash --rcfile _dev_dir/bash_alises.sh; else sudo docker-compose run --rm app bash ;fi'
alias dk-exec-bash='if [ -f ./_dev_dir/bash_alises.sh ]; then sudo docker-compose exec app bash --rcfile _dev_dir/bash_alises.sh; else sudo docker-compose exec app bash ;fi'
#----------------------------------------------------
# https://hub.docker.com/_/nginx/tags?page=1&name=alpine

## 3.25 Mb in 2023-02
alpine:3.17.1
alpine:3

## 5.2 Mb in 2023-02
nginx:1.23.3-alpine-slim
nginx:mainline-alpine-slim

## 25.2 Mb Mb in 2023-02
nginx:1.23.3-alpine
nginx:alpine
## push docker image to docker hub
## After build your image
## Get your build ID
docker images tiagofranca/php-81-fpm-dev
## You will get some like this:
REPOSITORY TAG IMAGE ID CREATED SIZE
tiagofranca/php-81-fpm-dev latest 9153e9fb37e3 4 minutes ago 571MB
## Now you can create a image TAG based on your image
docker tag 9153e9fb37e3 tiagofranca/php-81-fpm-dev:22-06-01
## DONE!
## Now you have 2 images
docker images tiagofranca/php-81-fpm-dev
REPOSITORY TAG IMAGE ID CREATED SIZE
tiagofranca/php-81-fpm-dev 22-06-01 9153e9fb37e3 4 minutes ago 571MB
tiagofranca/php-81-fpm-dev latest 9153e9fb37e3 4 minutes ago 571MB
## To push:
docker push tiagofranca/php-81-fpm-dev
# or
docker push tiagofranca/php-81-fpm-dev:22-06-01

#---------------------------------------------------- #---------------------------------------------------- Parar vários baseado no nome do container (exemplo 'run'): #https://stackoverflow.com/a/56998487/11716408

sudo docker ps --filter name=next* --filter status=running -aq | sudo xargs docker stop #---------------------------------------------------- #Conteúdo sobre container com Postgres (ver se o conteúdo é bom) https://levelup.gitconnected.com/creating-and-filling-a-postgres-db-with-docker-compose-e1607f6f882f #----------------------------------------------------

#Via apt ubuntu https://www.digitalocean.com/community/tutorials/como-instalar-e-usar-o-docker-no-ubuntu-18-04-pt #-------------------------------------------------- #Install by sh script https://github.com/docker/docker-install

curl -fsSL https://get.docker.com -o /tmp/get-docker.sh && sudo sh /tmp/get-docker.sh &&
sudo usermod -aG docker $USER && newgrp docker &&
newgrp docker &&
sudo curl -L "github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose &&
sudo chmod +x /usr/bin/docker-compose

#Install docker-compose sudo curl -L "github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose &&
sudo chmod +x /usr/local/bin/docker-compose #----------------------------------------------------

#Post Install #Create the docker group. sudo groupadd docker

#Add your user to the docker group. sudo usermod -aG docker $USER

#Reload a Linux user's group assignments without logging out

Entrar no grupo sem precisar fazer logout

#https://superuser.com/a/1132361/1261674 newgrp docker

Em 1 linha (no usuário que quer adicionar ao docker group)

#---------------------------------------------------- sudo groupadd docker;sudo usermod -aG docker $USER && newgrp docker #---------------------------------------------------- #Testar um Dockerfile? docker build -t test . #---------------------------------------------------- #Ótimo dockerfile para se inspirar https://hub.docker.com/r/leandrocp/pentaho-server/dockerfile/ #---------------------------------------------------- #Install Compose on Linux systems https://docs.docker.com/v17.09/compose/install/#install-compose #---------------------------------------------------- #----------------------------------------------------

#Bom pra usar no Laravel (php 7.1) https://github.com/ineat/docker-php-nginx-postgres-composer #---------------------------------------------------- #CRIANDO UM REGISTRY LOCAL How to push a docker image to a private repository - Stack Overflow https://stackoverflow.com/questions/28349392/how-to-push-a-docker-image-to-a-private-repository #---------------------------------------------------- #Laravel https://github.com/juniorb2ss/laravel-docker-compose https://medium.com/@juniorb2s/docker-compose-e-laravel-e32b683b2486 #---------------------------------------------------- #Backup and restore a docker container https://www.thegeekdiary.com/how-to-backup-and-restore-docker-containers/ #postgresql http://dev.tiagofranca.com/notas/devsql_postgresql #----------------------------------------------------

Cara, isso aqui explica tudo de docker -> https://www.youtube.com/watch?v=0cDj7citEjE&list=PLf-O3X2-mxDk1MnJsejJwqcrDC5kDtXEb YouTube LINUXtips [ LinuxTips ] - Docker Tutorial #1 - Docker, Containers, Images e muito mais!

#---------------------------------------------------- #Expose a ports https://stackoverflow.com/questions/49323225/expose-all-ports-for-a-docker-image --network host

#Exemplo docker run -dit -P --network host -v /:/host_path --name testeub -d backup_ubuntu_10_04_lts #---------------------------------------------------- ###Criar volume #https://docs.docker.com/engine/reference/commandline/volume_create/ docker volume create nome_volume

###Listar volumes docker volume ls

###Iniciando um projeto com pasta local docker run -dit -P --name temp_name -v /local/path/:/volume/path/ beevelop/cordova bash

###Executando um binário em um container em execução docker exec -it nome_temp01 bash

###Detalhes de um container docker inspect nome_temp01

###Para um container docker container stop nome_temp01

###Remove um container docker container rm nome_temp01

#Usar pasta local para container docker run -dit -P --name temp_name -v /local/path/:/volume/path/ beevelop/cordova bash

#Usar pasta local para container com porta copmpartilhada do container para o host { https://forums.docker.com/t/using-localhost-for-to-access-running-container/3148 https://stackoverflow.com/questions/30109037/how-can-i-forward-localhost-port-on-my-container-to-localhost-on-my-host } docker run -dit -P --name temp_name --expose 8000 -p 8000:8000 -v /local/path/:/volume/path/ beevelop/cordova bash

###Executar um projeto temporario sem volume (NÃO RECOMENDADO) docker run -ditv /pasta/local/ --name nome_temp02 beevelop/cordova /bin/bash

##Excutar temporario e remover apos sair docker run --name tmpubuntu -dit --rm -v $(pwd)/:/work_path/ ubuntu:18.04 bash docker run --name tempubuntu-$(date +%Y-%m-%d_%H-%M-%S) -dit --rm -v $(pwd)/:/work_path/ ubuntu:18.04 bash

docker run --name tmpubuntu -dit -P --rm --expose 80 -p 80:80 -v $(pwd)/nginx_default:/etc/nginx/sites-available/default -v $(pwd)/:/var/www/html/ tiagofranca/tfcomwebserver:20-01-28 bash #----------------------------------------------------

Docker aliases

alias dockerps='docker ps' alias dockerpsa='docker ps -a' alias dockerpsgrep='docker ps |grep' alias dockerpsagrep='docker ps -a|grep' alias dk-='sudo docker-compose' alias dk-run-rm='sudo docker-compose run --rm' alias dk-php='sudo docker-compose run --rm app php' alias dk-composer='sudo docker-compose run --rm app composer' alias dk-artisan='sudo docker-compose run --rm app php artisan' alias dk-tinker='sudo docker-compose run --rm app php artisan tinker' alias dk-bash='if [ -f ./_dev_dir/bash_alises.sh ]; then sudo docker-compose run --rm app bash --rcfile _dev_dir/bash_alises.sh; else sudo docker-compose run --rm app bash ;fi' #alias dk-run-rm-app='sudo docker-compose run --rm app bash --rcfile _dev_dir/bash_alises.sh' alias dk-run-rm-app='if [ -f ./_dev_dir/bash_alises.sh ]; then sudo docker-compose run --rm app bash --rcfile _dev_dir/bash_alises.sh; else sudo docker-compose run --rm app bash ;fi' alias dk-exec-bash='if [ -f ./_dev_dir/bash_alises.sh ]; then sudo docker-compose exec app bash --rcfile _dev_dir/bash_alises.sh; else sudo docker-compose exec app bash ;fi' #----------------------------------------------------

version: '3.7'
services:
mailpit:
image: axllent/mailpit
restart: always
ports:
- "${MAILPIT_SMTP_PORT:-1025}:1025" ## SMTP Port
- "${MAILPIT_WEB_UI_PORT:-8025}:8025" ## Web UI PORT
networks:
app-network:
aliases:
- ${MAILPIT_VIRTUAL_HOST:-mailpit.local}
- ${MAILHOG_VIRTUAL_HOST:-mailhog.local}
- mailpit
- mailhog
#Docker Networks
networks:
app-network:
driver: bridge
version: '3.7'
services:
mariadb:
image: 'mariadb:11'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD:-mysql}'
MYSQL_ROOT_USER: '${MYSQL_ROOT_USER:-root}'
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: '${DB_DATABASE:-mariadb}'
MYSQL_USER: '${DB_USERNAME:-mysql}'
MYSQL_PASSWORD: '${DB_PASSWORD:-mysql}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'basic-mariadb:/var/lib/mysql'
- './mariadb-create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
networks:
- app-network
healthcheck:
test:
- CMD
- mysqladmin
- ping
- '-p${DB_PASSWORD:-mysql}'
retries: 3
timeout: 5s
#Docker Networks
networks:
app-network:
driver: bridge
volumes:
basic-mariadb:
driver: local
#!/bin/bash
MARIADB_DIR=/tmp/basic-docker/mariadb/
mkdir -p ${MARIADB_DIR}
if [ -d $MARIADB_DIR ]; then
echo "";
else
echo "A pasta não foi criada";
exit 5;
fi
cd ${MARIADB_DIR}
curl -o "${MARIADB_DIR}/mariadb-create-testing-database.sh" 'https://gist.githubusercontent.com/tiagofrancafernandes/f587cb429a006391309b49e018ce305d/raw/temp-docker-envs---mariadb-create-testing-database.sh'
curl -o "${MARIADB_DIR}/docker-compose.yml" 'https://gist.githubusercontent.com/tiagofrancafernandes/f587cb429a006391309b49e018ce305d/raw/temp-docker-envs---basic-mariadb-docker-compose.yml'
docker-compose --project-directory "${MARIADB_DIR}" up
cd /tmp && curl -o '/tmp/mariadb-download-and-run.sh' 'https://gist.githubusercontent.com/tiagofrancafernandes/f587cb429a006391309b49e018ce305d/raw/temp-docker-envs---basic-mariadb-download-and-run.sh'; bash '/tmp/mariadb-download-and-run.sh'
mkdir -p /tmp/basic-docker/mailpit/ && curl -o '/tmp/basic-docker/mailpit/docker-compose.yml' 'https://gist.githubusercontent.com/tiagofrancafernandes/f587cb429a006391309b49e018ce305d/raw/2e39c2e4305e9f554e8a25dd886d5e94824d09ea/temp-docker-envs---basic-mailpit-docker-compose.yml' && docker-compose --project-directory /tmp/basic-docker/mailpit/ up
echo -e "127.0.0.1 mailpit mailpit.local" | sudo tee -a /etc/hosts
#!/usr/bin/env bash
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-mysql}
MYSQL_ROOT_USER=${MYSQL_ROOT_USER:-root}
mysql --user=${MYSQL_ROOT_USER} --password="$MYSQL_ROOT_PASSWORD" <<-EOSQL
CREATE DATABASE IF NOT EXISTS testing;
GRANT ALL PRIVILEGES ON \`testing%\`.* TO '$MYSQL_USER'@'%';
EOSQL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment