Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
docker_lamp [Le 21/12/2021, 00:15] wiki-corrector-bot passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
docker_lamp [Le 18/01/2022, 16:26] 93.15.43.175 [Méthode avancée] |
||
---|---|---|---|
Ligne 50: | Ligne 50: | ||
Lançons donc un conteneur avec cette image : | Lançons donc un conteneur avec cette image : | ||
- | <code>docker run -v ~/www:/var/www/html -v ~/mysql:/var/lib/mysql -p 80:80 -p 3306:3306 --restart=always lioshi/lamp:php5</code> | + | <code>docker run -v ~/.docker/www:/var/www/html -v ~/.docker/mysql:/var/lib/mysql -p 80:80 -p 3306:3306 --restart=always lioshi/lamp:php5</code> |
L'option **-v** (volume) relie les répertoires locaux **~/www** et **~/mysql** aux répertoires **/var/www/html** et **/var/lib/mysql** de l'image Debian dans le conteneur.\\ | L'option **-v** (volume) relie les répertoires locaux **~/www** et **~/mysql** aux répertoires **/var/www/html** et **/var/lib/mysql** de l'image Debian dans le conteneur.\\ | ||
L'option **-p** (port) relie les ports qui nous intéressent du conteneur aux ports de notre machine locale. Ici le port 80 (HTTP) et le port 3306 (MySQL).\\ | L'option **-p** (port) relie les ports qui nous intéressent du conteneur aux ports de notre machine locale. Ici le port 80 (HTTP) et le port 3306 (MySQL).\\ | ||
Ligne 88: | Ligne 88: | ||
- "80:80" | - "80:80" | ||
volumes: | volumes: | ||
- | - ~/www:/var/www/html | + | - ~/.docker/www:/var/www/html |
links: | links: | ||
- db:db | - db:db | ||
Ligne 94: | Ligne 94: | ||
image: mysql:5.5 | image: mysql:5.5 | ||
volumes: | volumes: | ||
- | - ~/mysql:/var/lib/mysql | + | - ~/.docker/mysql:/var/lib/mysql |
ports: | ports: | ||
- "3306:3306" | - "3306:3306" | ||
Ligne 109: | Ligne 109: | ||
**web**, **db** et **myadmin** sont les noms qu'on décide de leur donner. Ces noms sont utilisés pour créer des liens - **links** - entre les différents conteneurs. Par ex. **db:db** signifie que notre conteneur **db** (du nom de notre conteneur MySQL) correspondra à l'hôte **db** dans notre conteneur **web**. Pour se connecter au serveur [[:MySQL]] il faudra donc entrer **db** comme nom d'hôte.\\ | **web**, **db** et **myadmin** sont les noms qu'on décide de leur donner. Ces noms sont utilisés pour créer des liens - **links** - entre les différents conteneurs. Par ex. **db:db** signifie que notre conteneur **db** (du nom de notre conteneur MySQL) correspondra à l'hôte **db** dans notre conteneur **web**. Pour se connecter au serveur [[:MySQL]] il faudra donc entrer **db** comme nom d'hôte.\\ | ||
On peut également passer des variables d'environnements à nos conteneurs. Ici nous définissons le mot de passe de l'utilisateur [[:MySQL]] **root** comme étant **root**.\\ | On peut également passer des variables d'environnements à nos conteneurs. Ici nous définissons le mot de passe de l'utilisateur [[:MySQL]] **root** comme étant **root**.\\ | ||
- | De la même manière que l'options **-v** de la ligne de commande, le paramètre **volumes** relie les répertoires locaux **~/www** et **~/mysql** aux répertoires **/var/www/html** de l'image Apache/PHP et **/var/lib/mysql** de l'image MySQL dans nos conteneurs.\\ | + | De la même manière que l'options **-v** de la ligne de commande, le paramètre **volumes** relie les répertoires locaux **~/.docker/www** et **~/.docker/mysql** aux répertoires **/var/www/html** de l'image Apache/PHP et **/var/lib/mysql** de l'image MySQL dans nos conteneurs.\\ |
Et le paramètre **ports** de la même manière que l'options **-p**, relie les ports qui nous intéressent de nos conteneurs aux ports de notre machine locale. Ici le port 80 (HTTP) et le port 3306 (MySQL), ce dernier peut-être et même doit-être supprimé si vous avez déjà un LAMP sur votre machine locale (hôte). | Et le paramètre **ports** de la même manière que l'options **-p**, relie les ports qui nous intéressent de nos conteneurs aux ports de notre machine locale. Ici le port 80 (HTTP) et le port 3306 (MySQL), ce dernier peut-être et même doit-être supprimé si vous avez déjà un LAMP sur votre machine locale (hôte). | ||
Ligne 117: | Ligne 117: | ||
Il faut attendre un peu que les images soient téléchargées, et c'est tout ! Notre serveur est en route. | Il faut attendre un peu que les images soient téléchargées, et c'est tout ! Notre serveur est en route. | ||
- | De la même manière qu'avec la [[#méthode simple]] les bases de données seront sauvegardées dans notre répertoire **~/mysql**.\\ | + | De la même manière qu'avec la [[#méthode simple]] les bases de données seront sauvegardées dans notre répertoire **~/.docker/mysql**.\\ |
[[:PhpMyAdmin]] est cette fois accessible sur le port 8080 : [[http://localhost:8080]]\\ | [[:PhpMyAdmin]] est cette fois accessible sur le port 8080 : [[http://localhost:8080]]\\ | ||
Et cette fois l'utilisateur par défaut pour les bases de données sera **root** avec le mot de passe **root** (hôte **db**). | Et cette fois l'utilisateur par défaut pour les bases de données sera **root** avec le mot de passe **root** (hôte **db**). | ||
- | On peut mettre les fichiers de notre site dans notre répertoire **~/www**. On pourra ensuite y accéder sur [[http://localhost]]. | + | On peut mettre les fichiers de notre site dans notre répertoire **~/.docker/www**. On pourra ensuite y accéder sur [[http://localhost]]. |
Pour passer de MySQL 5.5 à MySQL 5.7 par ex. il suffit de remplacer **image: mysql:5.5** par **image: mysql:5.7** et de relancer **docker-compose up**. | Pour passer de MySQL 5.5 à MySQL 5.7 par ex. il suffit de remplacer **image: mysql:5.5** par **image: mysql:5.7** et de relancer **docker-compose up**. |