Utilizando MySQL com Docker
Índice:
A conexão com um contêiner do Docker em execução é útil quando você deseja ver o que está acontecendo dentro do contêiner. Se o contêiner do Docker não funcionar como esperado, você poderá anexá-lo ou obter um shell no contêiner e executar comandos como
ps
ou
top
. Você também pode inserir o contêiner, instalar novos pacotes e criar uma nova imagem do Docker.
Neste tutorial, explicaremos como conectar-se ao processo principal de execução do contêiner e como obter um shell em um contêiner em execução.
Anexar a um contêiner
Embora seja possível executar vários processos em um contêiner, a maioria dos contêineres do Docker está executando apenas um único processo. O comando que é executado ao iniciar um contêiner é especificado usando as
ENTRYPOINT
e / ou
RUN
.
O comando
docker attach
permite conectar seu terminal ao contêiner em execução. Isso é útil quando você deseja ver o que está escrito na saída padrão em tempo real ou para controlar o processo interativamente.
Para entender melhor como o comando
attach
funciona, vamos executar um novo contêiner Nginx desanexado usando a imagem oficial do Nginx.
docker container run --name my_nginx -d -p 8080:80 nginx
A opção
-p 8080:80
informa ao Docker para ligar a porta 8080 do contêiner à porta 80 na máquina host.
Liste os contêineres para garantir que o contêiner “my_nginx” esteja em execução:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
Anexe ao contêiner usando o ID ou nome do contêiner:
docker container attach my_nginx
O comando padrão da imagem nginx que é executada quando você executa o contêiner é definido como
CMD
. Quando você executa o comando
attach
seu terminal se conecta ao processo
nginx
.
Abra
127.0.0.1:8080
no seu navegador e você pode assistir a saída do processo nginx em tempo real.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
Para obter acesso aos logs de contêiner, você deve usar o comando
docker logs
.
Para desanexar do contêiner sem pará-lo, use a combinação de teclas
CTRL-p
CTRL-q
. Pressionar
CTRL-c
para o contêiner.
Se os processos em execução aos quais você está anexando aceitarem entrada, você poderá enviar instruções para ele.
Obter um shell para um contêiner
O comando
docker exec
permite executar comandos dentro de um contêiner em execução.
Para ver como o comando
exec
funciona e como ele pode ser usado para entrar no shell do contêiner, primeiro inicie um novo contêiner. Usaremos a imagem oficial do MySQL:
docker container run --name my_mysql -d mysql
Isso criará um contêiner chamado "my_mysql".
Para executar um comando dentro do contêiner, execute o seguinte comando:
docker container exec -it my_mysql ls /var
A opção
-i
significa interativa e
-t
diz ao Docker para alocar um pseudo dispositivo TTY. O comando
ls
listará todos os arquivos e diretórios dentro do diretório
/var
do contêiner:
backups cache lib local lock log mail opt run spool tmp
Para obter um shell no contêiner, ou seja, para entrar no contêiner, inicie uma nova sessão de shell executando o binário do shell. Você pode usar
sh
,
bash
ou qualquer outro shell incluído na imagem.
O comando abaixo criará uma nova sessão do Bash dentro do contêiner:
docker container exec -it my_mysql /bin/bash
Seu prompt de comando será alterado, indicando que agora você está trabalhando no shell do contêiner.
A partir daqui, você pode executar comandos da mesma maneira que faria em qualquer outro servidor Linux. Por exemplo, para obter uma lista das variáveis de ambiente atuais, digite
env
:
env
A saída será mais ou menos assim:
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
Conclusão
Os comandos
docker exec
e
docker attach
permitem conectar-se a um contêiner em execução. Para obter um shell interativo em um contêiner, use o comando
exec
para iniciar uma nova sessão do shell. O comando
attach
anexa seu terminal a um contêiner em execução.
Como conectar falhas de segurança em seu navegador

Para proteger seu histórico de navegação, experimente o recurso gratuito Navegação Privada no Safai da Apple ou o add-on Desconhecido. no para o Firefox. Para obter o anonimato completo, experimente o anonimizador com base em taxas ou o Tor grátis.
Como conectar a Cortana à conta do Microsoft Health

Veja como conectar sua conta do Microsoft Health à Cortana no Windows 10. Uma vez conectado, a Cortana mostra sua Progresso da atividade na Microsoft Band.
Falha ao enumerar objetos no contêiner

Se você não conseguir alterar permissões de objetos e receber Falha ao enumerar objetos no contêiner , Erro de acesso negado no Windows 10 / 8.1, consulte esta correção