Acesse o diretório webserver e visualize o conteúdo do arquivo Dockerfile:
$ 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"]
Construa a imagem dexter-intranet, através do subcomando build:
$ docker image build -t wordpress.
Verifique se a nova imagem consta na lista:
$ docker image ls
A partir da nova imagem, execute o container wordpress na porta 80:
$ docker container run -d --name=wordpress -p 0.0.0.0:80:80 wordpress
Verifique se o container está em execução na porta, e ao final, remova o container.
$ docker container ls $ docker port wordpress $ docker container rm -f wordpress
Execute o container para o servidor de banco de dados MySQL:
$ 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
Acesse o container dbserver, através do comando docker container exec:
$ docker container exec -it dbserver /bin/bash $ mysql -u root -psenha
Crie o banco de dados wordpress, através do seguinte comando:
> CREATE DATABASE wordpress;
Defina as permissões de acesso ao banco wordpress e ao usuário wordpressuser:
> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%' IDENTIFIED BY 'senha';
Atualize os privilégios e abandone o prompt do MySQL:
> FLUSH PRIVILEGES; > EXIT
Desconecte do container e verifique se o diretório banco possui os arquivos do MySQL:
CTRL + D
$ ls banco
Salve as alterações do container dbserver em uma nova imagem:
$ docker commit dbserver dexter-dbserver
$ docker image ls
Para terminar, remova a execução do container dbserver:
$ docker container rm -f dbserver
Execute o container para o servidor de banco de dados MySQL, usando a imagem criada:
$ 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
Execute o container para o servidor de Web na porta 80:
$ docker container run -d --name=wordpress --link dbserver:dbserver \ -p 0.0.0.0:80:80 dexter-wordpress
Verifique se os containers estão em execução:
$ docker container ls