User Tools

Site Tools


image_dockerfile

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

image_dockerfile [2025/07/26 17:09] – - Imported by DokuWiki Advanced Plugin wikiadmimage_dockerfile [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Criando imagem com Dockerfile ====== 
-Acesse o diretório webserver e visualize o conteúdo do arquivo Dockerfile:  
-<code bash> 
-$ cd webserver 
-$ ls 
-$ cat Dockerfile 
- 
-FROM debian:9 
-COPY sources.list /etc/apt/sources.list 
- 
-RUN apt update && apt install apache2 php libapache2-mod-php 
-php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc 
-php-soap php-intl php-zip php-cli -y 
- 
-COPY wordpress.conf /etc/apache2/sites-available/wordpress.conf 
-RUN a2enmod rewrite 
- 
-COPY wordpress /var/www/html/wordpress 
-RUN chown -R www-data:www-data /var/www/html/wordpress 
- 
-RUN find /var/www/html/wordpress/ -type d -exec chmod 750 {} \; 
-RUN find /var/www/html/wordpress/ -type f -exec chmod 640 {} \; 
- 
-EXPOSE 80 
-CMD ["apachectl", "-D", "FOREGROUND"] 
-</code> 
- 
-Construa a imagem dexter-intranet, através do subcomando build:  
-<code bash> 
-$ docker image build -t wordpress.  
-</code> 
- 
-  * **FROM**: Define o nome da imagem base com uma tag, utilizada para criação de uma nova imagem no Docker; 
-  * **ENV**: Define uma variável de ambiente, utilizada durante a construção da nova imagem; 
-  * **COPY**: Define a cópia de novos arquivos ou diretórios da máquina local para o sistema de arquivos da nova imagem; 
-  * **RUN**: Define a execução de comandos em uma nova camada em cima da imagem atual. 
-  * **EXPOSE**: Informa ao Docker, que o container escuta em uma determinada porta de rede em tempo de execução; 
-  * **CMD**: Define um comando que será executado no momento da execução do container; 
-  * **docker image build**: Permite construir uma imagem do Docker, a partir de um arquivo Dockerfile. 
- 
-Verifique se a nova imagem consta na lista:  
-<code bash> 
-$ docker image ls  
-</code> 
- 
-A partir da nova imagem, execute o container wordpress na porta 80: 
-<code bash> 
-$ docker container run -d --name=wordpress -p 0.0.0.0:80:80 wordpress 
-</code> 
- 
-Verifique se o container está em execução na porta, e ao final, remova o container. 
-<code bash> 
-$ docker container ls 
-$ docker port wordpress 
-$ docker container rm -f wordpress 
-</code> 
- 
-  * **docker container run -p**: Permite mapear uma porta do container no host hospedeiro;  
-  * **docker container port**: Lista mapeamentos de portas de um container. 
- 
-Execute o container para o servidor de banco de dados MySQL: 
-<code bash> 
-$ docker container run -d -e 'MYSQL_ROOT_PASSWORD=senha' \ 
--v "$PWD/banco":/var/lib/mysql --name=dbserver -p \ 
-0.0.0.0:3306:3306 mysql:5.7.22 
-</code> 
- 
-Acesse o container dbserver, através do comando docker container exec: 
-<code bash> 
-$ docker container exec -it dbserver /bin/bash 
-$ mysql -u root -psenha 
-</code> 
- 
-  * **docker run -v /volume:/volume**: Permite criar e mapear um novo volume, no momento da execução de um container; 
-  * **docker container exec**: Permite executar um comando diretamente em um container. 
- 
-Crie o banco de dados wordpress, através do seguinte comando: 
-<code bash> 
-> CREATE DATABASE wordpress; 
-</code> 
- 
-Defina as permissões de acesso ao banco wordpress e ao usuário wordpressuser: 
-<code bash> 
-> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%' IDENTIFIED BY 'senha'; 
-</code> 
- 
-Atualize os privilégios e abandone o prompt do MySQL: 
-<code bash> 
-> FLUSH PRIVILEGES; 
-> EXIT 
-</code> 
- 
-Desconecte do container e verifique se o diretório banco possui os arquivos do MySQL: 
-<code bash> 
-CTRL + D 
-$ ls banco 
-</code> 
- 
-Salve as alterações do container dbserver em uma nova imagem: 
-<code bash> 
-$ docker commit dbserver dexter-dbserver 
-$ docker image ls 
-</code> 
- 
-Para terminar, remova a execução do container dbserver: 
-<code bash> 
-$ docker container rm -f dbserver 
-</code> 
- 
-Execute o container para o servidor de banco de dados MySQL, usando a imagem criada: 
-<code bash> 
-$ docker container run -d -e MYSQL_ROOT_PASSWORD=senha\ 
--v "$PWD/banco":/var/lib/mysql --name=dbserver -p \ 
-0.0.0.0:3306:3306 dbserver 
-</code> 
- 
-Execute o container para o servidor de Web na porta 80: 
-<code bash> 
-$ docker container run -d --name=wordpress --link dbserver:dbserver \ 
--p 0.0.0.0:80:80 dexter-wordpress 
-</code> 
- 
-Verifique se os containers estão em execução: 
-<code bash> 
-$ docker container ls 
-</code> 
  
image_dockerfile.1753560543.txt.gz · Last modified: by wikiadm