I have PHP web application
and i want to convert it into docker
.
I have these containers
mysql
php
nginx
I have source code in my host folder as /var/www/site1
Now when i launch nginx , then i can mount site1
to nginx as /usr/nginx/share/html
But i am not sure how does i link with PHP conainer. Can't i have stand alone PHP container with only PHP installed or I need to have some webserver along with PHP
My view on docker containers is that each container typically represents one process. E.g. mysql or nginx as in your example. Containers typically communicates with each other using networking or via shared files in volumes.
Each container runs its own operating system (typically specified in the FROM
-section in your Dockerfile
. In your case, you are suggesting that the nginx-container runs in one process with one operating system and that the php-libraries run in a different process (in a different os). I'm not sure if this is doable but it seems as if it is a strange way of doing things.
My suggestion is that you create two containers:
nginx+php
- this container holds the PHP installation as well as the Nginx-stuffmysql
- this container contains the databaseThe container can communicate via classic networking or as linked containers.
However, the PHP-files that you wish to execute (i.e. your website) should be dynamically mounted as a data volume on the nginx+php
container or as data volume container.