{"id":15309,"date":"2023-01-27T00:28:58","date_gmt":"2023-01-26T21:28:58","guid":{"rendered":"https:\/\/kifarunix.com\/?p=15309"},"modified":"2024-03-09T23:41:27","modified_gmt":"2024-03-09T20:41:27","slug":"how-to-deploy-wordpress-as-a-docker-container","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/how-to-deploy-wordpress-as-a-docker-container\/","title":{"rendered":"How to Deploy WordPress as a Docker Container"},"content":{"rendered":"\n<p>Can you run WordPress in a Docker container? Yes, follow this tutorial to learn how to deploy WordPress as a Docker container. <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress<\/a> is the world&#8217;s most popular, free and open source blogging tool and a content management system (CMS) which is based on PHP and MySQL\/MariaDB databases. It is possible to run it as a Docker container.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#deploying-word-press-as-a-docker-container\">Deploying WordPress as a Docker Container<\/a><ul><li><a href=\"#install-docker-engine\">Install Docker Engine<\/a><\/li><li><a href=\"#build-or-use-official-word-press-docker-image\">Build or Use Official WordPress Docker Image<\/a><\/li><li><a href=\"#build-or-use-official-my-sql-maria-db-database-docker-image\">Build or Use Official MySQL\/MariaDB Database Docker Image<\/a><\/li><li><a href=\"#create-custom-docker-network\">Create Custom Docker Network<\/a><\/li><li><a href=\"#create-and-start-my-sql-maria-db-database-container\">Create and Start MySQL\/MariaDB Database Container<\/a><ul><li><a href=\"#define-maria-db-root-password\">Define MariaDB root password<\/a><\/li><li><a href=\"#create-maria-db-data-directory\">Create MariaDB Data Directory<\/a><\/li><li><a href=\"#create-and-run-maria-db-docker-container\">Create and Run MariaDB Docker Container<\/a><\/li><\/ul><\/li><li><a href=\"#create-word-press-database-and-database-user\">Create WordPress Database and Database User<\/a><\/li><li><a href=\"#create-and-start-word-press-database-container\">Create and Start WordPress Database Container<\/a><\/li><li><a href=\"#accessing-containerized-word-press-site\">Accessing Containerized WordPress Site<\/a><\/li><li><a href=\"#other-tutorials\">Other Tutorials<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"deploying-word-press-as-a-docker-container\">Deploying WordPress as a Docker Container<\/h2>\n\n\n\n<p>How can you Dockerize a WordPress app? Well, Docker has revolutionized how apps are currently being run! In this guide, you will learn how to Dockerize WordPress app by running it as a Docker container.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-docker-engine\">Install Docker Engine<\/h3>\n\n\n\n<p>You need to install Docker engine on your Docker host before you can proceed.<\/p>\n\n\n\n<p>See our previous tutorials on <a href=\"https:\/\/kifarunix.com\/?s=install+docker\" target=\"_blank\" rel=\"noreferrer noopener\">how to install Docker engine<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker version<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nClient: Docker Engine - Community\n Version:           20.10.22\n API version:       1.41\n Go version:        go1.18.9\n Git commit:        3a2c30b\n Built:             Thu Dec 15 22:28:04 2022\n OS\/Arch:           linux\/amd64\n Context:           default\n Experimental:      true\n\nServer: Docker Engine - Community\n Engine:\n  Version:          20.10.22\n  API version:      1.41 (minimum version 1.12)\n  Go version:       go1.18.9\n  Git commit:       42c8b31\n  Built:            Thu Dec 15 22:25:49 2022\n  OS\/Arch:          linux\/amd64\n  Experimental:     false\n containerd:\n  Version:          1.6.14\n  GitCommit:        9ba4b250366a5ddde94bb7c9d1def331423aa323\n runc:\n  Version:          1.1.4\n  GitCommit:        v1.1.4-0-g5fd4c4d\n docker-init:\n  Version:          0.19.0\n  GitCommit:        de40ad0\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"build-or-use-official-word-press-docker-image\">Build or Use Official WordPress Docker Image<\/h3>\n\n\n\n<p>At this point, you can choose whether you want to build your own WordPress Docker image or use the official Docker image for WordPress.<\/p>\n\n\n\n<p>In this tutorial, we will use the official WordPress Docker image. This image comes bundled with Apache, PHP and required WordPress files.<\/p>\n\n\n\n<p>Therefore, download the latest WordPress Docker image;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/opt\/wordpress<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/wordpress <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker pull wordpress<\/code><\/pre>\n\n\n\n<p>You can see other relevant <a href=\"https:\/\/hub.docker.com\/_\/wordpress\/tags\" target=\"_blank\" rel=\"noreferrer noopener\">tags<\/a> for specific versions of WordPress image.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"build-or-use-official-my-sql-maria-db-database-docker-image\">Build or Use Official MySQL\/MariaDB Database Docker Image<\/h3>\n\n\n\n<p>You will of course need a database for storing your WordPress site data. The most command databases to be used with WordPress are MySQL or its variant, MariaDB.<\/p>\n\n\n\n<p>If you want to use MySQL official Docker image, download it as follows;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker pull mysql<\/code><\/pre>\n\n\n\n<p>Or if you want to use MariaDB official Docker image, use the command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker pull mariadb<\/code><\/pre>\n\n\n\n<p>This will download the latest versions of the images. Check their official pages for relevant tags;<\/p>\n\n\n\n<p>You can list Docker images using the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker images<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>REPOSITORY           TAG       IMAGE ID       CREATED         SIZE\nwordpress            latest    fcd4967b9728   2 weeks ago     615MB\nmariadb              latest    a748acbaccae   6 weeks ago     410MB<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-custom-docker-network\">Create Custom Docker Network<\/h3>\n\n\n\n<p>In order to configure your WordPress app to use your MySQL or MariaDB database container, you will need to interconnect the two containers.<\/p>\n\n\n\n<p>There are different ways of interconnecting Docker containers. One of the ways include connecting containers to same Docker Network. Any Docker containers connected to the same network can communicate with no issues.<\/p>\n\n\n\n<p>Therefore, let&#8217;s create a custom network using <code><strong>docker network create<\/strong><\/code> command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker network create &#91;OPTIONS] &lt;name&gt;<\/code><\/pre>\n\n\n\n<p>e.g<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker network create wp-app<\/code><\/pre>\n\n\n\n<p>This creates a Docker network called <code>wp-app<\/code>.<\/p>\n\n\n\n<p>For more [OPTIONS], do;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker network create --help<\/code><\/pre>\n\n\n\n<p>List available networks;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker network ls<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nNETWORK ID     NAME                         DRIVER    SCOPE\nec9dcea69a38   bridge                       bridge    local\n948a8c9971f6   host                         host      local\n326f211f2226   nagios-core-docker_default   bridge    local\ne8a7ddcc85b4   none                         null      local\n<strong>ce199041829e   wp-app                       bridge    local<\/strong>\n<\/code><\/pre>\n\n\n\n<p>So we will interconnect our WordPress app and DB using the wp-app network.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-and-start-my-sql-maria-db-database-container\">Create and Start MySQL\/MariaDB Database Container<\/h3>\n\n\n\n<p>Since we already downloaded a MariaDB image, you can simply create and start a container using the same image.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"define-maria-db-root-password\">Define MariaDB root password<\/h4>\n\n\n\n<p>To begin with, set the MariaDB root password. The password can be defined using the <strong><code>MARIADB_ROOT_PASSWORD<\/code><\/strong> environment variable (<em>MySQL_ROOT_PASSWORD if using MySQL Docker image<\/em>).<\/p>\n\n\n\n<p>Note that you can also hash your password and use the <strong><code>MARIADB_ROOT_PASSWORD_HASH<\/code><\/strong> variable to specify your root user password hash.<\/p>\n\n\n\n<p>Well, there are other environment variables you can use to adjust the initialization of the MariaDB container instance. We will only be using the above environment variable in this guide.<\/p>\n\n\n\n<p>You can pass the environment variable with its value to the docker run command while starting the container using the <strong><code>-e<\/code> <\/strong>or <strong><code>--env<\/code><\/strong> option e.g <strong><code>-e MARIADB_ROOT_PASSWORD=changemepassword<\/code><\/strong>. This specifies the password that will be set for the MariaDB&nbsp;<code>root<\/code>&nbsp;superuser account, (changemepassword, in this case).<\/p>\n\n\n\n<p>Similarly, <code><strong>_FILE<\/strong><\/code>&nbsp;may be appended to the environment variables, e.g <strong><code>MARIADB_ROOT_PASSWORD_FILE<\/code><\/strong> to load the values for those variables from files.<\/p>\n\n\n\n<p>For example, let&#8217;s put our MariaDB root user MD5 password hash in a file under our working directory, <code>\/opt\/wordpress<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo `openssl passwd` | sudo tee $PWD\/.db-pass<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Password: \nVerifying - Password: \n$1$NwW95isi$th3jSpgHa883Wevk0GIf\/\/<\/code><\/pre>\n\n\n\n<p>We put the password hash under <strong><code>\/opt\/wordpess\/.db-pass<\/code><\/strong> file.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"create-maria-db-data-directory\">Create MariaDB Data Directory<\/h4>\n\n\n\n<p>To persistently store your database data on your host, create a data directory;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/opt\/wordpress\/data<\/code><\/pre>\n\n\n\n<p>You will have to mount this volume on to the MariaDB Docker container data directory, <strong><code>\/var\/lib\/mysql<\/code><\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"create-and-run-maria-db-docker-container\">Create and Run MariaDB Docker Container<\/h4>\n\n\n\n<p>Now, let&#8217;s create and start MariaDB container and connect it to the network created above;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run -d \\\n--network=wp-app \\\n-e MARIADB_ROOT_PASSWORD_HASH=\/opt\/wordpress\/.db-pass \\\n--restart unless-stopped \\\n-v '\/opt\/wordpress\/data:\/var\/lib\/mysql' \\\n--name wp-mariadb mariadb<\/code><\/pre>\n\n\n\n<p>List running containers;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker ps<\/code><\/pre>\n\n\n\n<p>Sample output<\/p>\n\n\n\n<pre class=\"scroll-sz\"><code>\nCONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS        PORTS                                       NAMES\n8d2a1aac1384   mariadb                \"docker-entrypoint.s\u2026\"   2 seconds ago   Up 1 second   3306\/tcp                                    wp-mariadb\n<\/code><\/pre>\n\n\n\n<p>Also check container logs;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tail -f \/var\/lib\/docker\/containers\/&lt;container-ID&gt;\/&lt;container-ID&gt;-json.log<\/code><\/pre>\n\n\n\n<p>e.g<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tail -f \/var\/lib\/docker\/containers\/8d2a1aac138402f747d1fb681e8a475a3ff94cf8c6593665e94906649fbdfdbc\/8d2a1aac138402f747d1fb681e8a475a3ff94cf8c6593665e94906649fbdfdbc-json.log<\/code><\/pre>\n\n\n\n<p>Sample logs;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\n{\"log\":\"2023-01-26 19:19:50 0 [Note] InnoDB: File '.\/ibtmp1' size is now 12.000MiB.\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.185971764Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] InnoDB: log sequence number 46790; transaction id 14\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.186995165Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] Plugin 'FEEDBACK' is disabled.\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.187218384Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] InnoDB: Loading buffer pool(s) from \/var\/lib\/mysql\/ib_buffer_pool\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.187343345Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] InnoDB: Cannot open '\/var\/lib\/mysql\/ib_buffer_pool' for reading: No such file or directory\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.187350811Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.190683332Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] Server socket created on IP: '0.0.0.0'.\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.19196571Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] Server socket created on IP: '::'.\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.191982038Z\"}\n{\"log\":\"2023-01-26 19:19:50 0 [Note] mariadbd: ready for connections.\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.217115629Z\"}\n{\"log\":\"Version: '10.10.2-MariaDB-1:10.10.2+maria~ubu2204'  socket: '\/run\/mysqld\/mysqld.sock'  port: 3306  mariadb.org binary distribution\\n\",\"stream\":\"stderr\",\"time\":\"2023-01-26T19:19:50.217135647Z\"}\n<\/code><\/pre>\n\n\n\n<p>So MariaDB container is now running.<\/p>\n\n\n\n<p>Similarly, MariaDB data should be available on the mounted volume;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -1 \/opt\/wordpress\/data\/<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\naria_log.00000001\naria_log_control\nddl_recovery-backup.log\nddl_recovery.log\nibdata1\nib_logfile0\nibtmp1\nmulti-master.info\nmysql\nmysql_upgrade_info\nperformance_schema\nsys\nwordpress\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-word-press-database-and-database-user\">Create WordPress Database and Database User<\/h3>\n\n\n\n<p>Login into the MariaDB Docker container and create WordPress database and database user;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it wp-mariadb bash<\/code><\/pre>\n\n\n\n<p>Enable password based authentication (<em>you notice that if you just type mysql, or mysql -u root and press enter, you get the MySQL shell without password<\/em>); You can set the pass to the same password as you set before.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>set password = password(\"P@sSw0Rd123\");<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>flush privileges;\nquit<\/code><\/pre>\n\n\n\n<p>If you now try to login to MySQL, you will be prompted for password.<\/p>\n\n\n\n<p>So, next, create WordPress database and database user with all privileges granted.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>create database wordpress;\ngrant all on wordpress.* to wpadmin@'%' identified by 'PASSWORD';\nflush privileges;\nquit<\/code><\/pre>\n\n\n\n<p>Exit the MariaDB database container;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>exit<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-and-start-word-press-database-container\">Create and Start WordPress Database Container<\/h3>\n\n\n\n<p>Now, it is time to deploy WordPress as a Docker container and link it to the MariaDB database container.<\/p>\n\n\n\n<p>While creating WordPress app Docker container, there available environment variables you use to define the database connection details.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>WORDPRESS_DB_USER<\/code><\/li>\n\n\n\n<li><code>WORDPRESS_DB_PASSWORD<\/code><\/li>\n\n\n\n<li><code>WORDPRESS_DB_NAME<\/code><\/li>\n\n\n\n<li><code>WORDPRESS_DB_HOST<\/code><\/li>\n<\/ul>\n\n\n\n<p>You can put all these environment variable in a file;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'WORDPRESS_DB_USER=wpadmin\nWORDPRESS_DB_PASSWORD=PASSWORD\nWORDPRESS_DB_NAME=wordpress\nWORDPRESS_DB_HOST=wp-mariadb:3306' | sudo tee \/opt\/wordpress\/.wp-db<\/code><\/pre>\n\n\n\n<p>While running WordPress Docker container, you can specify environment variables file using <strong><code>--env-file<\/code><\/strong> option.<\/p>\n\n\n\n<p>We will also expose Apache on port 80\/tcp.<\/p>\n\n\n\n<p>To easily configure WordPress, let&#8217;s also create a directory to store WordPress configs on the Docker host;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/opt\/wordpress\/wp<\/code><\/pre>\n\n\n\n<p>We will mount this directory to WordPress configs directory on the Docker container, <code>\/var\/www\/html<\/code>.<\/p>\n\n\n\n<p>To connect WordPress to Database container, ensure you connect it to the same network as the database container.<\/p>\n\n\n\n<p>You can specify environment variables one by one;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nsudo docker run -d \\\n--network=wp-app \\\n-e WORDPRESS_DB_NAME=wordpress \\\n-e WORDPRESS_DB_USER=wpadmin \\\n-e WORDPRESS_DB_PASSWORD=PASSWORD \\\n-e WORDPRESS_DB_HOST=wp-mariadb:3306 \\\n--restart unless-stopped \\\n-p 80:80 \\\n-v '\/opt\/wordpress\/wp:\/var\/www\/html' \\\n--name wordpress-app wordpress\n<\/code><\/pre>\n\n\n\n<p>You can also specify environment variables from a file;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nsudo docker run -d \\\n--network=wp-app \\\n--env-file=\/opt\/wordpress\/.wp-db \\\n--restart unless-stopped \\\n-p 80:80 \\\n-v '\/opt\/wordpress\/wp:\/var\/www\/html' \\\n--name wordpress-app wordpress\n<\/code><\/pre>\n\n\n\n<p>WordPress app should now be running;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps<\/code><\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>\nCONTAINER ID   IMAGE                  COMMAND                  CREATED              STATUS              PORTS                                       NAMES\n517003ce9e57   wordpress              \"docker-entrypoint.s\u2026\"   About a minute ago   Up About a minute   0.0.0.0:80->80\/tcp, :::80->80\/tcp           wordpress-app\n8d2a1aac1384   mariadb                \"docker-entrypoint.s\u2026\"   2 hours ago          Up 2 hours          3306\/tcp                                    wp-mariadb\n<\/code><\/pre>\n\n\n\n<p>You can also check logs for both DB and APP just in case.<\/p>\n\n\n\n<p>Also confirm that you can see WordPress config files on mounted volume, <code>\/opt\/wordpress\/wp<\/code>;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ls -1 \/opt\/wordpress\/wp<\/code><\/pre>\n\n\n\n<p>Output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nindex.php\nlicense.txt\nreadme.html\nwp-activate.php\nwp-admin\nwp-blog-header.php\nwp-comments-post.php\nwp-config-docker.php\nwp-config.php\nwp-config-sample.php\nwp-content\nwp-cron.php\nwp-includes\nwp-links-opml.php\nwp-load.php\nwp-login.php\nwp-mail.php\nwp-settings.php\nwp-signup.php\nwp-trackback.php\nxmlrpc.php\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"accessing-containerized-word-press-site\">Accessing Containerized WordPress Site<\/h3>\n\n\n\n<p>You can now access your containerized WordPress app; <strong>http:\/\/IP_or_domain<\/strong>.<\/p>\n\n\n\n<p>Choose the language of your site;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-setup.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1290\" height=\"899\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-setup.png\" alt=\"How to Deploy WordPress as a Docker Container\" class=\"wp-image-15316\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-setup.png?v=1674767477 1290w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-setup-768x535.png?v=1674767477 768w\" sizes=\"(max-width: 1290px) 100vw, 1290px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>Set your WordPress sit information and proceed to finalize installation;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-information.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1157\" height=\"938\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-information.png\" alt=\"How to Deploy WordPress as a Docker Container\" class=\"wp-image-15317\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-information.png?v=1674767531 1157w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-information-768x623.png?v=1674767531 768w\" sizes=\"(max-width: 1157px) 100vw, 1157px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>Install and Login to your site;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-dockerized.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1887\" height=\"878\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-dockerized.png\" alt=\"How to Deploy WordPress as a Docker Container\" class=\"wp-image-15319\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-dockerized.png?v=1674767555 1887w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-dockerized-768x357.png?v=1674767555 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/01\/wordpress-site-dockerized-1536x715.png?v=1674767555 1536w\" sizes=\"(max-width: 1887px) 100vw, 1887px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>You have now Dockerized your WordPress app.<\/p>\n\n\n\n<p>That brings us to the end of our tutorial on deploying WordPress as a Docker container.<\/p>\n\n\n\n<p>Learn more about Docker commands from their help pages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"other-tutorials\">Other Tutorials<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/how-to-install-docker-resource-usage-extension\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Install Docker Resource Usage Extension<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/how-to-monitor-docker-containers-using-nagios\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Monitor Docker Containers using Nagios<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Can you run WordPress in a Docker container? Yes, follow this tutorial to learn how to deploy WordPress as a Docker container. WordPress is the<\/p>\n","protected":false},"author":10,"featured_media":15326,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121,1076,1077,36],"tags":[6318,6315,6316,6319,6317],"class_list":["post-15309","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","category-containers","category-docker","category-virtualization","tag-deploy-wordpress-docker-container","tag-dockerize-wordpress-app","tag-internconnect-wordpress-and-database-containers","tag-mariadb-docker-container","tag-run-wordpress-as-a-docker-container","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/15309"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=15309"}],"version-history":[{"count":17,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/15309\/revisions"}],"predecessor-version":[{"id":20674,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/15309\/revisions\/20674"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/15326"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=15309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=15309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=15309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}