{"id":1356,"date":"2021-07-21T07:11:00","date_gmt":"2021-07-21T10:11:00","guid":{"rendered":"https:\/\/www.erudio.com.br\/blog\/?p=1356"},"modified":"2021-07-06T11:56:22","modified_gmt":"2021-07-06T14:56:22","slug":"executando-uma-stack-wordpress-com-docker-e-docker-compose","status":"publish","type":"post","link":"https:\/\/www.erudio.com.br\/blog\/executando-uma-stack-wordpress-com-docker-e-docker-compose\/","title":{"rendered":"Executando uma stack WordPress com Docker e Docker Compose"},"content":{"rendered":"\n<p>Fala pessoal beleza!<\/p>\n\n\n\n<p>No <strong><a href=\"https:\/\/www.erudio.com.br\/blog\/configurando-uma-stack-wordpress-com-docker-e-docker-compose\/\">post anterior<\/a><\/strong> n\u00f3s configuramos uma stack <strong>WordPress <\/strong>e <strong>MySQL<\/strong> com o <strong>Docker<\/strong> e o <strong>Docker Compose<\/strong>. Nesse post n\u00f3s iremos executar essa stack. Se voc\u00ea conferiu o <strong><a href=\"https:\/\/www.erudio.com.br\/blog\/configurando-uma-stack-wordpress-com-docker-e-docker-compose\/\">post anterior<\/a><\/strong> ent\u00e3o certamente tem um arquivo <strong>docker-compose.yml<\/strong> igual ao c\u00f3digo abaixo.<\/p>\n\n\n\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\nversion: '3.4'\nservices:\n  db:\n    image: mysql:5.7.22\n    command: mysqld --default_authentication_plugin=mysql_native_password\n    environment:\n      TZ: America\/Sao_Paulo\n      MYSQL_ROOT_PASSWORD: docker\n      MYSQL_USER: docker\n      MYSQL_PASSWORD: docker\n      MYSQL_DATABASE: wordpress\n    ports:\n      - 3308:3306;\n    networks:\n      - wordpress-network\n\n  wordpress:\n    image: wordpress:latest\n    volumes:\n      - .\/config\/php.conf.uploads.ini:\/usr\/local\/etc\/php\/conf.d\/uploads.ini\n      - .\/wp-app:\/var\/www\/html\n    environment:\n      TZ: America\/Sao_Paulo\n      WORDPRESS_DB_HOST: db\n      WORDPRESS_DB_NAME: wordpress\n      WORDPRESS_DB_USER: root\n      WORDPRESS_DB_PASSWORD: docker\n    ports:\n      - 80:80\n    networks:\n      - wordpress-network\n\nnetworks:\n    wordpress-network:\n      driver: bridge\n<\/pre>\n\n\n\n<p>Agora vamos acessar o diret\u00f3rio desse arquivo e abrir o terminal (se n\u00e3o for no mesmo diret\u00f3rio do arquivo n\u00e3o ir\u00e1 funcionar). Com o terminal aberto digite o comando <strong>docker-compose up -d<\/strong> para que o <strong>Docker Compose<\/strong> inicialize a stack. O par\u00e2metro <strong>-d<\/strong> \u00e9 opcional e \u00e9 usado para que o <strong>Docker Compose<\/strong> inicie de modo detachado e libere o terminal pra que possamos continuar usando. Esse processo pode levar alguns minutos j\u00e1 que ele ir\u00e1 baixar as Docker images e inicializar os cont\u00eaineres, algo que pode demorar dependendo da sua internet e de seu hardware. Se tudo correr bem ent\u00e3o a sa\u00edda no terminal deve ser similar \u00e0 abaixo:<\/p>\n\n\n\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">root@leandro:\/home\/leandro# docker-compose up -d\n\nCreating network &quot;1306networksindockercompose_wordpress-network&quot; with driver &quot;bridge&quot;\nPulling db (mysql:5.7.22)...\n5.7.22: Pulling from library\/mysql\nbe8881be8156: Pull complete\nc3995dabd1d7: Pull complete\n9931fdda3586: Pull complete\nbb1b6b6eff6a: Pull complete\na65f125fa718: Pull complete\n2d9f8dd09be2: Pull complete\n37b912cb2afe: Pull complete\n79592d21cb7f: Pull complete\n00bfe968d82d: Pull complete\n79cf546d4770: Pull complete\n2b3c2e6bacee: Pull complete\nDigest: sha256:aaba540cdd9313645d892f4f20573e8b42b30e5be71c054b7befed2f7da5f85b\nStatus: Downloaded newer image for mysql:5.7.22\nPulling wordpress (wordpress:latest)...\nlatest: Pulling from library\/wordpress\nb4d181a07f80: Pull complete\n78b85dd8f014: Pull complete\n8589b26a90be: Pull complete\nf5af5d641946: Pull complete\n614ec6f0b8d6: Pull complete\n12b28f3797fb: Pull complete\n96bcb7d2e6b0: Pull complete\n09a46dfaa772: Pull complete\n1a85b508a14e: Pull complete\nc6fd9c89235a: Pull complete\n40b955b2d455: Pull complete\nfda03b9af7e2: Pull complete\n570ea029c915: Pull complete\na3f5858f9e8b: Pull complete\ne563e5b2630b: Pull complete\n10499c79181c: Pull complete\n7180626436df: Pull complete\n72df520dac82: Pull complete\ned2d407056b5: Pull complete\n7224b35f0930: Pull complete\n7bf10a169530: Pull complete\nDigest: sha256:0a2b70369b24a45802e33d5870638bac3c7f289dfcb0d0a9b6e9990c0a217c27\nStatus: Downloaded newer image for wordpress:latest\nCreating 1306networksindockercompose_db_1 ... done\nCreating 1306networksindockercompose_wordpress_1 ... done\nroot@leandro:\/home\/leandro#\n<\/pre>\n\n\n\n<p>Podemos ir direto ao navegador e conferir se tudo deu certo, mas antes vamos conhecer o comando <strong>docker-compose ps<\/strong> que lista os cont\u00eaineres da stack em execu\u00e7\u00e3o. Um detalhe fundamental \u00e9 que todos os comandos do <strong>Docker compose<\/strong> precisam ser executados no mesmo diret\u00f3rio em que est\u00e1 o arquivo <strong>docker-compose.yml<\/strong> ou n\u00e3o funcionar\u00e1. Se tudo tiver sido executado com sucesso voc\u00ea ter\u00e1 uma sa\u00edda no terminal similar \u00e0 mostrada abaixo:<\/p>\n\n\n\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nroot@leandro:\/home\/leandro# docker-compose ps\n                 Name                                Command               State                    Ports\n---------------------------------------------------------------------------------------------------------------------------\n1306networksindockercompose_db_1          docker-entrypoint.sh mysql ...   Up      0.0.0.0:3308-&amp;gt;3306\/tcp,:::3308-&amp;gt;3306\/tcp\n1306networksindockercompose_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:80-&amp;gt;80\/tcp,:::80-&amp;gt;80\/tcp\nroot@leandro:\/home\/leandro#\n<\/pre>\n\n\n\n<p>Se o estado cont\u00eainer for igual a <strong>up <\/strong>ent\u00e3o significa que est\u00e1 funcionando. Agora vamos ao browser no endere\u00e7o <strong>http:\/\/localhost\/<\/strong>, voc\u00ea provavelmente ver\u00e1 uma imagem similar a abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2021\/07\/docker_wordpress.png\" alt=\"\" class=\"wp-image-1393\" width=\"441\" height=\"592\" srcset=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2021\/07\/docker_wordpress.png 704w, https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2021\/07\/docker_wordpress-224x300.png 224w\" sizes=\"(max-width: 441px) 100vw, 441px\" \/><\/figure>\n\n\n\n<p>Pronto subimos uma stack com <strong>WordPress <\/strong>e <strong>MySQL <\/strong>usando o <strong>Docker Compose<\/strong>. Se voc\u00ea prosseguir ver\u00e1 que \u00e9 uma instala\u00e7\u00e3o e configura\u00e7\u00e3o de um blog exatamente igual ao <strong>WordPress <\/strong>tradicional. Agora vamos conhecer o comando <strong>docker-compose down <\/strong>respons\u00e1vel por interromper a stack inteira. No nosso exemplo isso n\u00e3o fica muito evidente, mas imagine interromper uma stack com dezenas de cont\u00eaineres usando o comando <strong>docker stop.<\/strong> N\u00e3o preciso nem dizer que \u00e9 praticamente invi\u00e1vel e \u00e9 exatamente por isso que existe o comando <strong>docker-compose down<\/strong>. Dito isto vamos encerrar a nossa stack, pra isso digite o comando <strong>docker-compose down<\/strong>:<\/p>\n\n\n\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nroot@leandro:\/home\/leandro# docker-compose down\nStopping 1306networksindockercompose_wordpress_1 ... done\nStopping 1306networksindockercompose_db_1        ... done\nRemoving 1306networksindockercompose_wordpress_1 ... done\nRemoving 1306networksindockercompose_db_1        ... done\nRemoving network 1306networksindockercompose_wordpress-network\nroot@leandro:\/home\/leandro#\n<\/pre>\n\n\n\nSe tudo correr bem voc\u00ea ver\u00e1 uma sa\u00edda similar \u00e0 acima. Note que al\u00e9m de parar os cont\u00eaineres o <strong>Docker Compose<\/strong> tamb\u00e9m interrompe a rede.  Bom por esse post \u00e9 isso e <strong><em>se voc\u00ea quer se tornar<\/em><\/strong> um verdadeiro <em><strong>ninja Docker<\/strong><\/em> e conhecer mais sobre <strong>Docker<\/strong> e <strong>Docker Compose<\/strong> eu recomendo <a href=\"https:\/\/pub.erudio.com.br\/guia-docker\"><strong><em>baixar o meu e-Book gratuito<\/em><\/strong> <strong>Docker um guia R\u00e1pido<\/strong><\/a> e dar uma conferida numa playlist sobre o tema <strong><a href=\"https:\/\/www.youtube.com\/c\/ErudioTraining\/videos\">no meu canal no Youtube<\/a><\/strong>.<\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/guia-docker\" target=\"_blank\" rel=\"noopener\"><br><img decoding=\"async\" src=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2021\/06\/banner_inscricao_model3.png\" alt=\"Baixe o Guia Docker gr\u00e1tis\"><br><\/a><\/p>\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\n\t<div class=\"wp-block-embed__wrapper\">\n\t\t<iframe loading=\"lazy\" title=\"Docker para Iniciantes: Minicurso Gratuito Completo!\" width=\"648\" \t\theight=\"365\" src=\"https:\/\/www.youtube.com\/embed\/videoseries?list=PL18bbNo7xuh84zAeNjNejyzd1GASt8Q9x\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\">\n\t\t<\/iframe>\n\t<\/div>\n<\/figure>\n<br>Bom por esse post \u00e9 isso a gente se v\u00ea no pr\u00f3ximo post!!!\n\n<h2>Treinamentos relacionados com este post<\/h2>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker do 0 \u00e0 Maestria: Cont\u00eaineres Desmistificados mais 3 B\u00d4NUS\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/09-docker.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker_para_aws\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker para Amazon AWS Implante Apps Java e .NET com Travis CI\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/10-docker-to-aws.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_java\" target=\"_blank\" rel=\"noopener\">\n        <br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0  AWS com Spring Boot 3, Java e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/07-rest-spring-java.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_asp_net\" target=\"_blank\" rel=\"noopener\">\n        <br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 Azure com ASP.NET Core 5 e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/01-rest-asp.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_kotlin\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 AWS com Spring Boot 3, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/18-rest-spring-kotlin.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices_java\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microservices do 0 com Spring Cloud, Spring Boot e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/14-microservices-java.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices-dotnet\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Arquitetura de Microsservi\u00e7os do 0 com ASP.NET, .NET 6 e C#\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/15-microservices-dotnet.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ms_kotlin\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microsservi\u00e7os do 0 com Spring Cloud, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/22-ms-kotlin.png\" \/><br \/>\n    <\/a>\n<\/p>\n<p>\n    <a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_kotlin\" target=\"_blank\" rel=\"noopener\">\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Kotlin para DEVs Java: Aprenda a Linguagem Padr\u00e3o do Android\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/20-kotlin.png\" \/><br \/>\n    <\/a>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala pessoal beleza! No post anterior n\u00f3s configuramos uma stack WordPress e MySQL com o Docker e o Docker Compose. Nesse post n\u00f3s iremos executar essa stack. Se voc\u00ea conferiu o post anterior ent\u00e3o certamente tem um arquivo docker-compose.yml igual ao c\u00f3digo abaixo. Agora vamos acessar o diret\u00f3rio desse arquivo e abrir o terminal (se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1230,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[261,27,260,262,68,266],"tags":[265,151,263,196,267],"_links":{"self":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1356"}],"collection":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1356"}],"version-history":[{"count":33,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1356\/revisions"}],"predecessor-version":[{"id":1417,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1356\/revisions\/1417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media\/1230"}],"wp:attachment":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}