Créez un répertoire et placez le package d'installation dans le répertoire correspondant
root@ubuntu20 : ~# mkdir nginx mysql php
root@ubuntu20 : ~# mv nginx-1.15.4.tar.gz nginx
root@ubuntu20 : ~# mv mysql-5.5.22.tar.gz mysql
root@ubuntu20:~# mv php-5.3.28.tar.gz php
Nginx
root@ubuntu20:~/nginx# vim Dockerfile
Ajouter à:
DE centos:7
EXÉCUTER yum -y install net-tools coreutils chkconfig iproute sed \
pcre-devel ncurses-devel openssl-devel zlib-devel autoconf \
libjpeg-devel libxml2-devel libpng-devel gd gcc gcc-c++ make perl perl-develRUN yum -y install net-tools iproute pcre-devel openssl-devel gcc gcc-c++ make zlib-devel elinks
AJOUTER nginx-1.15.4.tar.gz /usr/src
ENV NGINX_DIR /usr/src/nginx-1.15.4
RÉP TRAVAIL $NGINX_DIR
EXÉCUTER ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
RÉPERT TRAVAIL /
RUN useradd nginx
EXÉCUTER ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
EXPOSER 80
CMD ["nginx", "-g", "démon désactivé ;"]
PHP
root@ubuntu20:~/php# vim Dockerfile
Ajouter à:
DE centos:7
EXÉCUTER yum -y install net-tools coreutils chkconfig iproute sed \
pcre-devel ncurses-devel openssl-devel zlib-devel autoconf php-mysql mysql-devel \
libjpeg-devel libxml2-devel libpng-devel gd gcc gcc-c++ make perl perl-develENV PHP_INSTALL_DIR /usr/src/php-5.3.28
ENV PHP_DIR /usr/local/php
ENV PHP_SH /etc/init.d/php-fpm
AJOUTER php-5.3.28.tar.gz /usr/src
EXÉCUTER yum -y install net-tools coreutils chkconfig iproute sed \
pcre-devel ncurses-devel openssl-devel zlib-devel autoconf \
libjpeg-devel libxml2-devel libpng-devel gd gcc gcc-c++ make perl perl-develWORKDIR /
RÉPÉR TRAVAIL $PHP_INSTALL_DIR
EXÉCUTER ./configure --prefix=$PHP_DIR --with-gd --with-zlib \
--with-config-file-path=$PHP_DIR \
--enable-fpm --enable-mbstring --with-jpeg-dir=/usr/lib && make && make install
RÉPERT TRAVAIL /
EXÉCUTER cp $PHP_INSTALL_DIR/php.ini-development $PHP_DIR/php.ini
EXÉCUTER cp $PHP_INSTALL_DIR/sapi/fpm/init.d.php-fpm $PHP_SH
RUN chmod +x $PHP_SH && chkconfig -- ajouter php-fpm
EXÉCUTER cp $PHP_DIR/etc/php-fpm.conf.default $PHP_DIR/etc/php-fpm.conf
EXÉCUTER mkdir /www/php -p
EXÉCUTER useradd -M -s /sbin/nologin nginx
COPIER php.sh /root/php.sh
EXÉCUTER chmod +x /root/php.sh
EXPOSER 9000
CMD ["/root/php.sh"]
root@ubuntu20:~/php# vim php.sh
Ajouter à:
#!/bin/bash
/etc/init.d/php-fpm démarrer
/bin/bash
root@ubuntu20 : ~# vim docker-compose.yaml
Réviser:
version : "3"
prestations de service:
nginx :
nom_du conteneur : nginx
construire : ~/nginx
tomes :
- nginx_dir:/usr/local/nginx/conf/
liens:
- php:phpfpm
redémarrer : toujours
ports :
- "80:80"
nom d'hôte : nginx
réseaux :
- lnmp_net
mysql :
image : mysql : 5.7
tomes :
- mysql_data :/var/lib/mysql
redémarrer : toujours
environnement:
MYSQL_ROOT_PASSWORD : 123.com
MYSQL_DATABASE : tâches
réseaux :
- lnmp_net
php :
nom d'hôte : php
nom_du conteneur : php
construire : ~/php
tomes :
- php_dir:/usr/local/php/
- php_index:/www/php
redémarrer : toujours
ports :
- "9000:9000"
stdin_open : vrai
réseaux :
- lnmp_net
tomes :
nginx_dir :
mysql_data :
rép_php :
php_index :
réseaux :
lnmp_net :
pilote : pont
Construire une image
root@ubuntu20 : ~# build docker-compose
root@ubuntu20 : ~# docker-compose up –d
Modifier le fichier de configuration
root@ubuntu20 : ~# vim /var/lib/docker/volumes/root_nginx_dir/_data/nginx.conf
Ajouter à:
Modifier le fichier de configuration php
root@ubuntu20 : ~# vim /var/lib/docker/volumes/root_php_dir/_data/php.ini
Ajouter à:
root@ubuntu20 : ~# vim /var/lib/docker/volumes/root_php_dir/_data/etc/php-fpm.conf
Modifier et ajouter :
Fichier de configuration Bianji
root@ubuntu20 : ~# vim /var/lib/docker/volumes/root_php_index/_data/index.php
ajouter manuellement :
Modifier le fichier de configuration
root@ubuntu20 : ~# vim /var/lib/docker/volumes/root_php_index/_data/mysql.php
ajouter manuellement :
Autorisation de base de données
root@ubuntu20 : ~# docker exec -it root_mysql_1 mysql -u root -p123.com
mysql> accorde tout sur *.* à 'root'@'%' identifié par '123.com' ;
Requête OK, 0 ligne affectée, 1 avertissement (0,00 s)
Entrez le conteneur php pour configurer, compiler et installer
root@ubuntu20 : ~# docker exec -it php bash
[root@php /]# cd /usr/src/php-5.3.28/
[root@php php-5.3.28]# ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-config-file-path=/usr/local/php --enable-fpm --enable-mbstring --with-jpeg-dir=/usr/lib && make && make install
Redémarrer le service PHP
[root@php php-5.3.28]# /etc/init.d/php-fpm redémarrage
Entrez dans le conteneur mysql et redémarrez le service
root@ubuntu20:~# docker exec -it root_mysql_1 bash
root@c21e5a16202e:/# /etc/init.d/mysql redémarrage
[info] Arrêt de MySQL Community Server 5.7.36.
Entrez dans le conteneur nginx et redémarrez le service
root@ubuntu20 : ~# docker exec -it nginx bash
[root@nginx /]# nginx -s recharger
Accès au navigateur
192.168.0.143/index.php
192.168.0.143/mysql.php
192.168.0.143