Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Deploy a LNMP environment using docker-compose

2025-02-25 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/03 Report--

1. Create relevant compose storage directory

< 5 docker-test - [root]: >

Mkdir-p / apps/compose_lnmp/nginx

< 5 docker-test - [root]: >

Cd! $

< 5 docker-test - [root]: /apps/compose_lnmp/nginx >

2. Download the nginx package and create dockerfile

< 6 docker-test - [root]: /apps/compose_lnmp/nginx >

# wget http://nginx.org/download/nginx-1.14.2.tar.gz

< 7 docker-test - [root]: /apps/compose_lnmp/nginx >

# vim DockerfileFROM centos:7MAINTAINER gujiworkRUN yum install-y gcc gcc-c++ make openssl-devel pcre-develADD nginx-1.14.2.tar.gz / tmpRUN cd / tmp/nginx-1.14.2 & &. / configure-- prefix=/usr/local/nginx & & make-j 4 & & make installCOPY nginx.conf / usr/local/nginx/confEXPOSE 80WORKDIR / usr/local/nginxCMD [". / sbin/nginx", "- g", "daemon off;"]

3. Nginx.conf is used in this. Put it in the compose_lnmp/nginx directory and change fastcgi_pass 127.0.0.1 fastcgi_pass 9000 to php container name, fastcgi_pass php-cgi:9000.

# user nginx;worker_processes 2, worker_connections workerboards, computers, computers 0101, 10, 10, worker_connections, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, worker_connections, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, # log_format main'$remote_addr-$remote_user [$time_local] "$request" #'$status $body_bytes_sent "$http_referer" #'"$http_user_agent" $http_x_forwarded_for "; # access_log logs/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on Server_names_hash_bucket_size 128; server_names_hash_max_size 512; client_header_timeout 15s; client_body_timeout 15s; send_timeout 60s; # tcp_nopush on; # keepalive_timeout 0; keepalive_timeout 65; # gzip on; server {listen 80; server_name localhost; # charset koi8-r; # access_log logs/host.access.log main Location / {root html; index index.html index.htm;} # error_page 404 / 404.html; # redirect server error pages to the static page / 50x.html # error_page 500502503504 / 50x.html; location = / 50x.html {root html } # proxy the PHP scripts to Apache listening on 127.0.0.1 location 80 # location ~. Php$ {# proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1 php$ 9000 # location ~. Php$ {root html Fastcgi_pass php-cgi:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME / scripts$fastcgi_script_name; include fastcgi_params;} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # # location ~ /\ .ht {# deny all #}} # another virtual host using mix of IP-, name-, and port-based configuration # # server {# listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / {# root html; # index index.html index.htm #} #} # HTTPS server # # server {# listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers high # location / {# root html; # index index.html index.htm; #} #} include vhost/*.conf;}

4. Create a mysql directory and persist the data and configuration files. Here we use the official image of mysql, so there is no need to write dockerfile.

< 39 docker-test - [root]: /apps/compose_lnmp >

# tree mysql/mysql/ |-- conf | `--my.cnf`-- data

< 40 docker-test - [root]: /apps/compose_lnmp >

# cat mysql/conf/my.cnf [mysqld] user=mysqlport=3306datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socketpid-file=/var/run/mysql/mysql.pidlog_error=/var/log/mysql/error.logcharacter_set_server = utf8max_connections=3600

5. The creation of php directory and dockerfile,php.ini mainly changed the time zone to shanghai

< 49 docker-test - [root]: /apps/compose_lnmp >

# tree php/php/ |-- Dockfile |-- php- 5.6.31.tar.gz`-- php.ini

< 50 docker-test - [root]: /apps/compose_lnmp >

# cat php/Dockfile FROM centos:7MAINTAINER gujiworkRUN yum install-y gcc gcc-c++ gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel makeADD php-5.6.31.tar.gz / tmp/RUN cd / tmp/php-5.6.31 & &\. / configure-prefix=/usr/local/php\-with-config-file-path=/usr/local/php/etc\-with-mysql-with-mysqli\-with -openssl-- with-zlib-- with-curl-- with-gd\-- with-jpeg-dir-- with-png-dir-- with-iconv\-- enable-fpm-- enable-zip-- enable-mbstring & &\ make-j 4 & & make install & &\ cp / usr/local/php/etc/php-fpm.conf.default / usr/local/php/etc/php-fpm.conf & &\ sed-I "s / 127.0.0.1 cp 0.0.0 / "/ usr/local/php/etc/php-fpm.conf & &\ cp. / sapi/fpm/init.d.php-fpm / etc/init.d/php-fpm & &\ chmod + x / etc/init.d/php-fpm COPY php.ini / usr/local/php/etcEXPOSE 9000CMD / etc/init.d/php-fpm start & & tail-F / var/log/messages

6. Create docker-compose maintenance files

< 53 docker-test - [root]: /apps/compose_lnmp >

# cat docker-compose.yml version: '3'services: nginx: hostname: nginx build: context:. / nginx dockerfile: Dockerfile ports:-80:80 links:-php:php-cgi volumes: -. / wwwroot:/usr/local/nginx/html php: hostname: php build:. / php links:-mysql:mysql-db volumes: -. / wwwroot: / usr/local/nginx/html mysql: hostname: mysql image: mysql:5.6 ports:-3306 volumes: -. / mysql/conf:/etc/mysql/conf.d -. / mysql/data:/var/lib/mysql # command:-- character-set-server=utf8 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: user MYSQL_PASSWORD: user123

7. Create a web mount directory. The overall directory structure is as follows

< 56 docker-test - [root]: /apps/compose_lnmp >

# tree.. |-- docker-compose.yml |-- mysql | |-- conf | | `--my.cnf |`-- data |-- nginx | |-- Dockerfile | |-- nginx-1.14.2.tar.gz | `--nginx.conf |-- php | |-- Dockfile | |-- php-5.6.31.tar.gz |`-- php.ini`-- wwwroot6 directories, 8 files

8. Execute build to build an image

< 81 docker-test - [root]: /apps/compose_lnmp >

# docker-compose build

9. The presence of success indicates that the construction is successful

Make [1]: Leaving directory `/ tmp/nginx-1.14.2'Removing intermediate container b7fb79c4671eMurray-> b756345aac5bStep 6Company9: COPY nginx.conf / usr/local/nginx/conf--- > cb180351db65Step 7lash 9: EXPOSE 80Murray-> Running in 20805a3b58a5Removing intermediate container 20805a3b58a5lur-> 9f75c3834969Step 8lash 9: WORKDIR / usr/local/nginx--- > Running in 6abf5341ee7bRemoving intermediate container 6abf5341ee7bWhue-> 0cb88354c8b8Step 9Univer 9: CMD [". / sbin/nginx", "- g", "daemon off" "]-- > Running in a2db489f2b5bRemoving intermediate container a2db489f2b5b Murray-> 76ae0759f3b1Successfully built 76ae0759f3b1Successfully tagged compose_lnmp_nginx:latest

10. Start the service test

< 82 docker-test - [root]: /apps/compose_lnmp >

# docker-compose up-dCreating network "compose_lnmp_default" with the default driverPulling mysql (mysql:5.6)... 5.6: Pulling from library/mysql177e7ef0df69: Pull completecac25352c4c8: Pull complete8585afabb40a: Pull complete1e4af4996053: Pull completec326522894da: Pull complete50ec9776c6b3: Pull completeb81a89945365: Pull complete80f5ab6567ca: Pull complete5caf5e4c5eb0: Pull complete9295ceea71e2: Pull completefb029976ca26: Pull completeCreating compose_lnmp_mysql_1_32333e982f89. DoneCreating compose_lnmp_php_1_856b9f701287... DoneCreating compose_lnmp_nginx_1_c5360c9dc627... Done

< 144 docker-test - [root]: /apps/compose_lnmp/wwwroot >

# echo "111" > index.html# Test

< 144 docker-test - [root]: /apps/compose_lnmp/wwwroot >

# curl localhost/111

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report