Docker基于centos部署lnmp,帮你突破瓶颈

Starting MySQL.Logging to ‘/opt/data/c193fcb41eae.err’.

SUCCESS!

[root@c193fcb41eae local]# ss -antl

State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

LISTEN 0 128 0.0.0.0:80 0.0.0.0:*

LISTEN 0 80 *:3306 :

//修改密码

[root@c193fcb41eae local]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.34 MySQL Community Server (GPL)

Copyright © 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> set password = password(‘123456’);

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> quit

Bye

//测试登录

[root@c193fcb41eae local]# mysql -uroot -p123456

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.34 MySQL Community Server (GPL)

Copyright © 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> quit

Bye

[root@c193fcb41eae src]# rm -rf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

在初始化mysql5.7的时候,报以下错误

error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

//解决方法

yum -y install numactl libaio

基于centos生成php容器


//运行一个php容器和nginx共享网络

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

466e7f22d1f3 centos:latest “/bin/bash” 52 minutes ago Up 3 minutes mysql01

c193fcb41eae 1314444/source_nginx:nginx-1.21.4 “/usr/local/nginx/sb…” 10 hours ago Up About an hour 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx05

[root@localhost ~]# docker run -it --name php8 --network container:nginx05 centos:latest /bin/bash # 启动本地镜像centos 在里面安装php --network container:nginx05 (以nginx05容器ID为共享网络)

[root@c193fcb41eae /]#

//重新打开一个终端查看正在运行的容器

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

22ce0738d9d7 centos:latest “/bin/bash” 28 seconds ago Up 27 seconds php8

466e7f22d1f3 centos:latest “/bin/bash” 54 minutes ago Up 5 minutes mysql01

c193fcb41eae 1314444/source_nginx:nginx-1.21.4 “/usr/local/nginx/sb…” 10 hours ago Up About an hour 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx05

//清理环境并安装epel源

[root@c193fcb41eae /]# yum clean all

[root@c193fcb41eae /]# yum -y install epel-release

//安装依赖包

[root@c193fcb41eae /]# yum install sqlite-devel libzip-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel gcc gcc-c++ make which --allowerasing

[root@c193fcb41eae /]# yum -y install http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

//打开另一个终端上传php包到容器内

[root@localhost ~]# ls

anaconda-ks.cfg mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz php-8.0.11.tar.gz

[root@localhost ~]# docker cp php-8.0.11.tar.gz 22ce0738d9d7:/usr/src/

//解压

[root@c193fcb41eae /]# ls /usr/src/

debug kernels php-8.0.11.tar.gz

[root@c193fcb41eae /]# cd /usr/src/

[root@c193fcb41eae src]# tar xf php-8.0.11.tar.gz -C /usr/local/

[root@c193fcb41eae src]# cd /usr/local/

[root@c193fcb41eae local]# ls

bin etc games include lib lib64 libexec php-8.0.11 sbin share src

//编译并安装

[root@c193fcb41eae local]# cd php-8.0.11/

[root@c193fcb41eae php-8.0.11]# ./configure --prefix=/usr/local/php8 \

–with-config-file-path=/etc \

–enable-fpm \

–disable-debug \

–disable-rpath \

–enable-shared \

–enable-soap \

–with-openssl \

–enable-bcmath \

–with-iconv \

–with-bz2 \

–enable-calendar \

–with-curl \

–enable-exif \

–enable-ftp \

–enable-gd \

–with-jpeg \

–with-zlib-dir \

–with-freetype \

–with-gettext \

–enable-mbstring \

–enable-pdo \

–with-mysqli=mysqlnd \

–with-pdo-mysql=mysqlnd \

–with-readline \

–enable-shmop \

–enable-simplexml \

–enable-sockets \

–with-zip \

–enable-mysqlnd-compression-support \

–with-pear \

–enable-pcntl \

–enable-posix &&

make && make install

//添加环境变量

[root@c193fcb41eae php-8.0.11]# echo ‘export PATH=/usr/local/php8/bin:$PATH’ > /etc/profile.d/php.sh

[root@c193fcb41eae php-8.0.11]# source /etc/profile.d/php.sh

[root@c193fcb41eae php-8.0.11]# which php

/usr/local/php8/bin/php

//配置php-fpm文件

[root@c193fcb41eae php-8.0.11]# \cp php.ini-production /etc/php.ini

[root@c193fcb41eae php-8.0.11]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@c193fcb41eae php-8.0.11]# chmod +x /etc/init.d/php-fpm

[root@c193fcb41eae php-8.0.11]# cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf

[root@c193fcb41eae php-8.0.11]# cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf

[root@c193fcb41eae /]# mkdir -p /var/www/html

[root@c193fcb41eae /]# cat > /var/www/html/index.php <<EOF

<?php phpinfo(); ?>

EOF

[root@c193fcb41eae /]# vi /usr/local/php8/etc/php-fpm.conf

daemonize = no #取消注释并设置daemonize = no,让php在前台运行

[root@c193fcb41eae /]# rm -rf /usr/src/php-8.0.11.tar.gz

[root@c193fcb41eae php-8.0.11]# /usr/local/php8/sbin/php-fpm

[root@c193fcb41eae php-8.0.11]# ss -anlt

State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

LISTEN 0 128 0.0.0.0:80 0.0.0.0:*

LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*

LISTEN 0 80 *:3306 :

//php启动脚本

[root@c193fcb41eae /]# vi /start.sh

#!/bin/bash

/usr/local/php8/sbin/php-fpm

[root@c193fcb41eae /]# chmod +x /start.sh

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

22ce0738d9d7 centos:latest “/bin/bash” 46 minutes ago Up 46 minutes php8

466e7f22d1f3 centos:latest “/bin/bash” 2 hours ago Up 51 minutes mysql01

c193fcb41eae 1314444/source_nginx:nginx-1.21.4 “/usr/local/nginx/sb…” 11 hours ago Up 2 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx05

在这里插入图片描述

制作镜像


[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

b8aff1ca0d45 centos:latest “./start.sh” 4 seconds ago Up 3 seconds php8

cb81cdc671e4 centos:latest “./start.sh” 8 minutes ago Up 8 minutes mysql01

c193fcb41eae nginx:latest “/usr/local/nginx/sb…” 11 minutes ago Up 11 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx05

//制作nginx镜像

[root@localhost ~]# docker commit -a ’ hhr 123@qq.com’ -c ‘CMD [“/usr/local/nginx/sbin/nginx”]’ nginx05 1314444/lnmp:nginx-v0.1

sha256:ae3a6692a4c0c3a615bdf08ad2941a8526c0acda2b6b6b21dfb625407280ac25

//制作mysql镜像

[root@localhost ~]# docker commit -a ’ hhr 123@qq.com’ -c ‘CMD [“./start.sh”]’ mysql01 1314444/lnmp:mysql-v0.1

sha256:ff7d2b91b948baf5ecde42ad6783d80b00fb4c18bc3edc3e9d907f2a7b0e8b96

//制作php镜像

[root@localhost ~]# docker commit -a ’ hhr 123@qq.com’ -c ‘CMD [“./start.sh”]’ php8 1314444/lnmp:php8-v0.1

sha256:359cf3ac83b0faea8d17fa4ba7eb3ed149b4ab68b8f625ed20e049d73a2c78ee

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

1314444/lnmp php8-v0.1 359cf3ac83b0 7 seconds ago 1.56GB

1314444/lnmp mysql-v0.1 ff7d2b91b948 4 minutes ago 3.81GB

1314444/lnmp nginx-v0.1 ae3a6692a4c0 7 minutes ago 551MB

centos latest 5d0da3dc9764 2 months ago 231MB

用新镜像创建lnmp容器


//启动nginx容器

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

[root@localhost ~]# docker run -d --name nginx -p 80:80 1314444/lnmp:nginx-v0.1

fad400d5145fea77e336200b915fd2321a9ee3c14d0bf8ecb9fe112f8e2b9106

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a5346a4eb92b ae3a6692a4c0 “./start.sh” 10 seconds ago Up 9 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx

[root@localhost ~]# docker exec -it nginx /bin/bash

[root@a5346a4eb92b /]# ss -anlt

State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

LISTEN 0 128 0.0.0.0:80 0.0.0.0:*

//启动mysql容器

[root@localhost ~]# docker run -d --name mysql --network container:fad400d5145f 1314444/lnmp:mysql-v0.1

cb81cdc671e4c266ea9d1537367ab509e1c50a9c29d6741fed632ee6c3ad1ddb

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

861eabb3a5b7 ff7d2b91b948 “./start.sh” 35 seconds ago Up 34 seconds mysql

a5346a4eb92b ae3a6692a4c0 “./start.sh” 7 minutes ago Up 7 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx

[root@localhost ~]# docker exec -it mysql /bin/bash

[root@a5346a4eb92b /]# ss -antl

State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

LISTEN 0 128 0.0.0.0:80 0.0.0.0:*

LISTEN 0 80 *:3306 :

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

学习视频:

大厂面试真题:

往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-oEOqWzhg-1711389906639)]
[外链图片转存中…(img-oRXfjjdP-1711389906640)]
[外链图片转存中…(img-AgFervWT-1711389906640)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-lU8jEhDF-1711389906640)]

最后

学习视频:

[外链图片转存中…(img-3I4sTPQq-1711389906641)]

大厂面试真题:

[外链图片转存中…(img-Oy9Eo97T-1711389906641)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值