Docker builds lnmp environment

1. Install docker

yum install -y docker

2. View the version information of docker

docker version

Cannot conneCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?ct to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?  此报错是没有daemon.json文件

3. Modify the mirror source of docker

#安装vim命令yum -y install vim* vim /etc/docker/daemon.json  { "registry-mirrors":["https://ftnejmh3.mirror.aliyuncs.com"] }

After the modification is complete, reload the daemon.json file  systemctl daemon-reload

4. Start the docker service

systemctl start docker
systemctl start docker # 启动docker systemctl stop docker # 停止docker systemctl status docker # 查看docker状态 systemctl restart docker # 重新启动dockersystemctl daemon-reload  #重载daemon.json 文件

5. Use the docker search nginx command to find the nginx image on Docker Hub

docker pull nginx

6. Check the nginx mirror after the download is complete

#查看当前有哪些镜像docker images

7. Create nginx configuration

cd /mkdir dockercd dockermkdir nginxcd /docker/nginxtouch default.confvim default.conf

Contents of the configuration file

server {      listen 80;      listen [::]:80;      server_name localhost;      root /docker/www/;      index index.php index.html;      location / {          try_files $uri $uri/ /index.php?$query_string;      }  error_page 500 502 503 504 /50x.html;      location = /50x.html {          root /docker/www/laravel/public;  }      location ~ \.php$ {          root /docker/www/;          fastcgi_pass 172.17.0.2:9000;          fastcgi_index index.php;          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;          include fastcgi_params;      }  }

8. Use the nginx image to open the nginx application container

docker run -p 80:80 -d --name nginx -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /docker/www:/docker/www --privileged=true nginx -p 80:80:将容器的80端口映射到主机的80端口 -d 后台运行(守护进程) --name nginx:将容器命名为nginx -v 将主机中当前目录下的www挂载到容器的www目录

9. docker install php7.4

docker pull php:7.4-fpm

10. Use php mirror to open php-frm application container

docker run -p 9000:9000 -d --name php -v /docker/www:/docker/www --privileged=true php:7.4-fpm -p 9000:9000 :将容器的9000端口映射到主机的9000端口 -d 后台运行(守护进程) --name php:将容器命名为php -v 将主机中当前目录下的www挂载到容器的www目录

11. View ip information

docker inspect php | grep "IPAddress"

Is it consistent with the configured php-fpm service ip?

12.Docker install mysql

docker pull mysql

13. Configure the mysql configuration file of the host

vim /etc/my.cnf

Clear the content of the my.cnf file and copy the following configuration into it

[client] port = 3306 socket = /tmp/mysql.sock [mysqld] secure_file_priv=/var/lib/mysql port = 3306 socket = /tmp/mysql.sock datadir = /usr/local/mysql/data default_storage_engine = InnoDB performance_schema_max_table_instances = 400 table_definition_cache = 400 skip-external-locking key_buffer_size = 32M max_allowed_packet = 100G table_open_cache = 128 sort_buffer_size = 768K net_buffer_length = 4K read_buffer_size = 768K read_rnd_buffer_size = 256K myisam_sort_buffer_size = 8M thread_cache_size = 16 tmp_table_size = 32M default_authentication_plugin = mysql_native_password lower_case_table_names = 1 sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES explicit_defaults_for_timestamp = true max_connections = 500 max_connect_errors = 100 open_files_limit = 65535 log-bin=mysql-binbinlog_format=mixed server-id = 1 binlog_expire_logs_seconds = 600000 slow_query_log=1 slow-query-log-file=/usr/local/mysql/data/mysql-slow.log long_query_time=3 early-plugin-load = "" innodb_data_home_dir = /usr/local/mysql/data innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /usr/local/mysql/data innodb_buffer_pool_size = 128M innodb_log_file_size = 64M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 innodb_max_dirty_pages_pct = 90 innodb_read_io_threads = 1 innodb_write_io_threads = 1  [mysqldump] quick max_allowed_packet = 500M  [mysql] no-auto-rehash  [myisamchk] key_buffer_size = 32M sort_buffer_size = 768K read_buffer = 2M write_buffer = 2M [mysqlhotcopy]interactive-timeout

14. Open the mysql container

docker run -p 3306:3306 -d --name mysql -v /etc/my.cnf:/etc/mysql/my.cnf --privileged=true -e MYSQL_ROOT_PASSWORD=root mysql -p 3306:3306 :将容器的3306端口映射到主机的3306端口 -d 后台运行(守护进程) --name mysql:将容器命名为mysql -v 将主机中的mysql配置挂载到容器的/etc/mysql/my.cnf

15. Enter the mysql container to see if you can connect

docker exec -it mysql bashmysql -uroot -p#默认密码是root

That's it for docker to build the lnmp environment

Add to install redis

Install the latest redis

docker pull redis

Create redis container

docker run -p 6379:6379 -d --name redis --privileged=true redis