1.1 Acesse o portal https://hub.docker.com e pesquise a imagem Mysql e vamos ver na documentação como inicializar o contianer. Para iniciar o nosso serviço com a imagem do Mysql, vamos inicia-lo com algumas variaveis:
MYSQL_ROOT_PASSWORD=r00tpa55
MYSQL_DATABASE=items
MYSQL_USER=user1
MYSQL_PASSWORD=mypa55
# docker run --name mysql-basic \
-e MYSQL_USER=user1 -e MYSQL_PASSWORD=mypa55 \
-e MYSQL_DATABASE=items -e MYSQL_ROOT_PASSWORD=r00tpa55 \
-d mysql:8.0
Vamos entender cada um dos itens do comando:
- --name parâmetro que permite ser inserido um nome para o seu container. Neste exemplo o nome do nosso container será mysql-basic;
- -e são as variáveis de ambiente que o container permite que o mysql já inicie com estas configurações. Neste exemplo o MYSQL_USER e MYSQL_PASSWORD estão passando o usuário e senha do banco de dados, o MYSQL_DATABASE esta iniciando o nome da nossa database e o MYSQL_ROOT_PASSWORD é a senha do administrador do banco;
- -d ele indica ao Docker para iniciar o container em background (modo daemon);
- mysql:8.0 inidca a imagem que vamos utilizar e a tag que desejamos baixar. Neste exemplo estamos falando para o docker baixar a imagem mysql com a tag 8.0.
Obs:Sempre que for necessário inicializar um container com variáveis de ambiente, como as inseridas no exemplo acima, é de extrema importância ver a documentação ou então identificar através do arquivo dockerfile quais as variáveis que o container suporta
# docker ps
Com este comando conseguimos visualizar todos os containers em execução no nosso host no momento e para o nosso exemplo é um sinal de que tudo esta rodando perfeitamente.
# docker exec -it mysql-basic /bin/bash
Vamos entender cada um dos itens do comando:
- exec possibilita que seja possivel ser executado qualquer comando sem que seja preciso estar no console do container. O docker exec executara apenas se o container estiver running, caso contrario retonará uma mensagem de erro;
- -it o -i modo interativo. Mantém o STDIN aberto mesmo sem console anexado e o -t ele aloca um pseudo TTY;
- mysql-basic é o nome do container que vamos abrir o terminal para interagir dentro do container;
- /bin/bash ele vai obter o shell (bash) do container.
Obs:Alguns containers não suportam o /bin/bash, as alternativa para substituição são: sh; /bin/ash/
3.1 Ainda dentro do container que executamos nos passos anteriores, vamos interagir com o nosso mysql e para isso precisamos utilizar o usuário e senha que passamos nas variaveis de ambiente quando iniciamos o container.
# mysql -uroot -pr00tpa55
O comando mysql abre o prompt interativo do banco de dados MySQL.
Para visualizar todas as databases:
# show databases;
3.2 Vamos criar uma tabela dentro da database items. Para conseguir criar uma tabel é preciso primeiro selecionar qual database vamos utilizar.
# use items;
CREATE TABLE Projects (id int NOT NULL,
name varchar(255) DEFAULT NULL,
code varchar(255) DEFAULT NULL,
PRIMARY KEY (id));
# show tables;
3.5 Vamos inserir algumas informações na nossa tabela. E depois de criada, vamos então visualizar as informações dentro da tabela.
insert into Projects (id, name, code) values (1,'docker','IBM');
select * from Projects;
exit
Mesmo saindo do container ele ainda esta sendo executado.
Para finaiza-lo basta executar:
# docker stop mysql-basic