Implementierungsschritte für die Docker-Bereitstellung lnmp-wordpress

Implementierungsschritte für die Docker-Bereitstellung lnmp-wordpress

1. Experimentelle Umgebung

System: centos7 IP: 192.168.238.133

#Firewall ausschalten [root@localhost ~]# systemctl stop firewalld 
[root@localhost ~]# systemctl Firewall deaktivieren
[root@localhost ~]# setenforce 0
#DNS hinzufügen
[root@localhost ~]# cat /etc/resolv.conf
Nameserver 114.114.114.114
#Ändern Sie den Hostnamen [root@localhost ~]# hostnamectl set-hostname docker-lnmp
[root@localhost ~]# su

2. Docker-Quelle installieren

#Abhängige Umgebung installieren [root@docker-lnmp ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#Installieren Sie die Ali-Docker-Quelle [root@docker-lnmp ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. Docker installieren

[root@docker-lnmp ~]# yum install -y docker-ce #Community-Version installieren[root@docker-lnmp ~]# systemctl enable docker #Automatischen Start einrichtenSymlink von /etc/systemd/system/multi-user.target.wants/docker.service nach /usr/lib/systemd/system/docker.service erstellt.
[root@docker-lnmp ~]# systemctl start docke #Dienst starten#Dockerfile-Verzeichnis erstellen[root@docker-lnmp ~]# mkdir docker && cd docker
#MySQL- und Nginx-Dockerfile-Verzeichnisse erstellen [root@docker-lnmp docker]# mkdir nginx mysql

Bildbeschreibung hier einfügen

4. Nginx und PHP bereitstellen

1. Softwarepaket und Konfigurationsdatei hochladen/dekomprimieren

Bildbeschreibung hier einfügen

#Entpacken Sie das Softwarepaket [root@docker-lnmp nginx]# tar zxvf wordpress-4.9.4-zh_CN.tar.gz
[root@docker-lnmp nginx]# tar zxvf nginx-1.12.2.tar.gz
[root@docker-lnmp nginx]# tar zxvf libmcrypt-2.5.7.tar.gz
[root@docker-lnmp nginx]# tar zxvf php-5.5.38.tar.gz

2. Erstellen Sie ein Dockerfile

[root@docker-lnmp nginx]# vim Dockerfile
VON docker.io/centos:7
Führen Sie den Befehl yum -y update aus.
RUN yum -y installiere gcc gcc-c++ openssl-devel openssl autoconf cmake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make
FÜHREN SIE DEN Anweisungsvorgang aus: groupadd -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin
VON docker.io/centos:7
Führen Sie den Befehl yum -y update aus.
RUN yum -y installiere gcc gcc-c++ openssl-devel openssl autoconf cmake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make
FÜHREN SIE DEN Anweisungsvorgang aus: groupadd -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin
HINZUFÜGEN nginx-1.12.2 nginx-1.12.2
AUSFÜHREN cd /nginx-1.12.2/ && ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx
RUN cd /nginx-1.12.2/ && make && make install
RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
RUN sed -i '1afastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' /usr/local/nginx/conf/fastcgi_params
Füge nginx.conf /usr/local/nginx/conf/ hinzu
Füge wordpress /usr/local/nginx/html/wordpress hinzu
Füge wp-config.php /usr/local/nginx/html/wordpress hinzu
RUN yum -y installiere gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel openssl automake make autoconf libtool zlib-devel make pcre-devel wget net-tools
HINZUFÜGEN libmcrypt-2.5.7 libmcrypt-2.5.7
AUSFÜHREN cd libmcrypt-2.5.7/&& ./configure --prefix=/usr/local/libmcrypt && make && make install
HINZUFÜGEN php-5.5.38 php-5.5.38
RUN cd php-5.5.38/ && ./configure --prefix=/usr/local/php5.5 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
RUN cd php-5.5.38 && cp php.ini-Produktion /etc/php.ini
RUN cd /php-5.5.38 && cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
RUN chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm auf
RUN cp /usr/local/php5.5/etc/php-fpm.conf.default /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's*;pid = run/php-fpm.pid*pid = run/php-fpm.pid*g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/Benutzer = niemand/Benutzer = nginx/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/group = nobody/group = nginx/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.max_children = 5/pm.max_children = 50/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /usr/local/php5.5/etc/php-fpm.conf
RUN sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 30/g' /usr/local/php5.5/etc/php-fpm.conf
EXPOSE 9000
AUSSETZEN 80

3. Erstellen Sie ein Image

[root@docker-lnmp nginx]# docker build -t "centos:nginx-php" .

Spiegelliste anzeigen

Bildbeschreibung hier einfügen

4. Erstellen Sie einen Container und führen Sie ihn aus

[root@docker-lnmp nginx]# docker run -dit -p 80:80 -m 500m --memory-swap 1G 3efb4e2c79b5 /bin/bash
49c5b69ce7012579f4b024ef6be88ff5de8057ccc7f81583fcf04f1c3ec6a79c

Containerliste anzeigen

Bildbeschreibung hier einfügen

5. Starten Sie den Dienst

[root@docker-lnmp nginx]# docker exec -it 49c5b69ce701 /bin/bash
[root@49c5b69ce701 /]# /etc/init.d/php-fpm start && nginx
[root@49c5b69ce701 /]# netstat -antp | grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 32/php-fpm:master  
[root@49c5b69ce701 /]# netstat -antp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39/nginx: Master-pr 

Überprüfen Sie es:

Bildbeschreibung hier einfügen

5. MySQL bereitstellen

1. Erstellen Sie ein MySQL-Dockerfile

[root@docker-lnmp mysql]# vim Dockerfile
VON docker.io/centos:7
RUN yum -y installiere gcc gcc-c++ make autoconf make cmake wget
RUN groupadd mysql; useradd -r -M -u 3306 -s /sbin/nologin -g mysql mysql
RUN mkdir /usr/local/mysql; mkdir /data/mysql -pv
RUN yum install gcc gcc-c++ ncurses-devel bison bison-devel -y
Führen Sie wget -c aus: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz
Führen Sie den Befehl tar xf mysql-5.6.29.tar.gz -C /usr/local/src/ aus.
ARBEITSVERZEICHNIS /usr/local/src/mysql-5.6.29
FÜHRE cmake aus. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH-MYSQLD-LDFLAGS=-all-static -DWITH-CLIENT-LD-FLAGS=-all-static -DWITH_DEBUG=0 && gmake && gmake installieren
RUN chown -R root:mysql /usr/local/mysql/ && chown -R mysql:mysql /data/mysql
RUN chmod 755 /usr/local/src/mysql-5.6.29/scripts/mysql_install_db.sh
RUN /usr/local/src/mysql-5.6.29/scripts/mysql_install_db.sh --basedir=/usr/local/mysql --datadir=/data/mysql --no-defaults --user=mysql
AUSFÜHREN cp /usr/local/src/mysql-5.6.29/support-files/my-default.cnf /etc/my.cnf
RUN cp /usr/local/src/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysqld
RUN chmod 775 /etc/init.d/mysqld && /etc/init.d/mysqld start
RUN echo -e '#!/bin/bash\nexport PATH=$PATH:/usr/local/mysql/bin' >/etc/profile.d/mysql.sh
RUN-Quelle /etc/profile
EXPOSE 3306

2. Erstellen Sie ein Image

[root@docker-lnmp mysql]# docker build -t "centos:mysql-5.6" .

Spiegelliste anzeigen

Bildbeschreibung hier einfügen

3. Erstellen Sie einen Container und führen Sie ihn aus

[root@docker-lnmp mysql]# docker run -dit -p 3306:3306 --device-write-bps /dev/sda:10M 704e5b978518 /bin/bash
960645a296e3e8795c344a8037b0641f8b5baf8e2214453214359071480c379d

Containerliste anzeigen

Bildbeschreibung hier einfügen

4. Starten Sie den Dienst

[root@docker-lnmp mysql]# docker exec -it 960645a296e3 /bin/bash
[root@960645a296e3 mysql-5.6.29]# /etc/init.d/mysqld start
MySQL wird gestartet............ ERFOLGREICH!

5. Datenbankautorisierung

#Passwort ändern [root@960645a296e3 mysql-5.6.29]# mysql -uroot -p123456
Warnung: Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein.
FEHLER 1045 (28000): Zugriff für Benutzer „root“@„localhost“ verweigert (mit Passwort: JA)
[root@960645a296e3 mysql-5.6.29]# mysqladmin -u root -p password
Passwort eingeben: 
Neues Passwort: 
Neues Passwort bestätigen: 
#Autorisieren [root@960645a296e3 mysql-5.6.29]# mysql -uroot -p123456
mysql> Datenbank erstellen WordPress Standard-Zeichensatz UTF8 COLLATE utf8_general_ci; #WordPress-Tabelle erstellen Abfrage OK, 1 Zeile betroffen (0,00 Sek.)

mysql> gewähre 'wordpress'@'%', identifiziert durch '123456', alle Privilegien für wordpress.* mit der Option 'Grant'; #Autorisierungsabfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> Flush-Berechtigungen; #Berechtigungen aktualisieren Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

Besuchen Sie: http://192.168.238.133/wordpress/index.php

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Implementierungsschritte der Docker-Bereitstellung lnmp-wordpress. Weitere relevante Inhalte zur Docker-Bereitstellung lnmp-wordpress finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So erstellen Sie schnell eine LNMP-Umgebung mit Docker (neueste Version)
  • Verwenden Sie Docker, um ein verteiltes lnmp-Image zu erstellen
  • So stellen Sie die LNMP-Architektur im Docker bereit
  • So stellen Sie LNMP und phpMyAdmin in Docker bereit
  • So erstellen Sie eine lnmp-Umgebung im Docker
  • Verwenden Sie Docker, um eine integrierte Service-LNMP-Umgebung zu erstellen
  • Detaillierte Erläuterung zur Verwendung von Docker zum Erstellen einer LNMP-Umgebung

<<:  Beispiel für die Einrichtung und Verwendung des HTML-Floating-Frames (Iframe lädt HTML)

>>:  So stellen Sie mit Node-Red eine Verbindung zur MySQL-Datenbank her

Artikel empfehlen

Tiefes Verständnis der Verwendung von ::before/:before und ::after/:after

Teil 1: Grundlagen 1. Im Gegensatz zu Pseudoklass...

Docker verwendet Root, um in den Container zu gelangen

Führen Sie zuerst den Docker-Container aus Führen...

MySQL Dual-Machine Hot-Standby-Implementierungslösung [testbar]

Inhaltsverzeichnis 1. Konzept 2. Umgebungsbeschre...

Tiefgreifendes Verständnis von Javascript-Prototypen und Prototypenketten

Inhaltsverzeichnis 1. Was ist ein Prototyp? 2. Pr...

So stellen Sie War-Pakete manuell über Tomcat9 unter Windows und Linux bereit

Die Ergebnisse sind in Windows- und Linux-Umgebun...

Tutorial zur kostenlosen Konfiguration der MySQL 5.7.18-Installationsversion

Installations-Tutorial zur kostenlosen Installati...

So lösen Sie das domänenübergreifende Front-End-Problem mithilfe des Nginx-Proxys

Vorwort Nginx (ausgesprochen „Engine X“) ist ein ...

Eine Sammlung möglicher Probleme bei der Migration von SQLite3 nach MySQL

Kurzbeschreibung Passend für Leser: Mobile Entwic...

Beispiel für die MySQL-Methode zum Löschen von Daten und Datentabellen

Es ist sehr einfach, Daten und Tabellen in MySQL ...