Docker基于centos部署lnmp

daemon off; #在前台运行

#下根目录下创建start.sh

[root@c193fcb41eae /]# cat >> start.sh <<EOF

#!/bin/bash

/usr/local/nginx/sbin/nginx

EOF

[ctrl]+q+p退出容器

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c193fcb41eae 1314444/source_nginx:nginx-1.21.4 “/bin/bash” 24 hours ago Up 30 minutes nginx05

基于centos生成mysql容器


//做mysql镜像并使用容器模式的网络

[root@localhost ~]# docker run -it --name mysql01 --network container:nginx05 centos:latest /bin/bash

[root@3367881fd446 /]# #启动本地镜像centos 在里面安装MySQL --network container:nginx05 (以nginx05容器ID为共享网络)

//重新打开一个终端查看并上传mysql包

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

466e7f22d1f3 centos:latest “/bin/bash” 11 seconds ago Up 10 seconds mysql01 # mysql容器正运行

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

mysql容器正运行

在这里插入代码片[root@localhost ~]# ls

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

[root@localhost ~]# docker cp mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz mysql01:/usr/src

//MySQL容器下查看

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

debug kernels mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

创建用户和组

[root@c193fcb41eae /]# useradd -r -M -s /sbin/nologin mysql

[root@c193fcb41eae /]# id mysql

uid=998(mysql) gid=996(mysql) groups=996(mysql)

//清理环境以及安装依赖包

[root@c193fcb41eae /]# yum clean all

[root@c193fcb41eae /]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel ncurses-compat-libs which numactl libaio

//解压

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

[root@c193fcb41eae src]# tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

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

bin etc games include lib lib64 libexec mysql-5.7.34-linux-glibc2.12-x86_64 sbin share src

//创建软连接

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

[root@c193fcb41eae local]# ln -s mysql-5.7.34-linux-glibc2.12-x86_64 mysql

[root@c193fcb41eae local]# ls -l

total 0

drwxr-xr-x 2 root root 6 Nov 3 2020 bin

drwxr-xr-x 2 root root 6 Nov 3 2020 etc

drwxr-xr-x 2 root root 6 Nov 3 2020 games

drwxr-xr-x 2 root root 6 Nov 3 2020 include

drwxr-xr-x 2 root root 6 Nov 3 2020 lib

drwxr-xr-x 3 root root 17 Sep 15 14:17 lib64

drwxr-xr-x 2 root root 6 Nov 3 2020 libexec

lrwxrwxrwx 1 root root 35 Dec 3 16:18 mysql -> mysql-5.7.34-linux-glibc2.12-x86_64

drwxr-xr-x 9 root root 129 Dec 3 16:17 mysql-5.7.34-linux-glibc2.12-x86_64

drwxr-xr-x 2 root root 6 Nov 3 2020 sbin

drwxr-xr-x 5 root root 49 Sep 15 14:17 share

drwxr-xr-x 2 root root 6 Nov 3 2020 src

//修改属主属组

[root@c193fcb41eae local]# chown -R mysql.mysql /usr/local/mysql*

[root@c193fcb41eae local]# ls -l

total 0

drwxr-xr-x 2 root root 6 Nov 3 2020 bin

drwxr-xr-x 2 root root 6 Nov 3 2020 etc

drwxr-xr-x 2 root root 6 Nov 3 2020 games

drwxr-xr-x 2 root root 6 Nov 3 2020 include

drwxr-xr-x 2 root root 6 Nov 3 2020 lib

drwxr-xr-x 3 root root 17 Sep 15 14:17 lib64

drwxr-xr-x 2 root root 6 Nov 3 2020 libexec

lrwxrwxrwx 1 mysql mysql 35 Dec 3 16:18 mysql -> mysql-5.7.34-linux-glibc2.12-x86_64

drwxr-xr-x 9 mysql mysql 129 Dec 3 16:17 mysql-5.7.34-linux-glibc2.12-x86_64

drwxr-xr-x 2 root root 6 Nov 3 2020 sbin

drwxr-xr-x 5 root root 49 Sep 15 14:17 share

drwxr-xr-x 2 root root 6 Nov 3 2020 src

//添加环境变量

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

[root@c193fcb41eae local]# source /etc/profile.d/mysql.sh

[root@c193fcb41eae local]# which mysql

/usr/local/mysql/bin/mysql

//头文件(include)、读取lib

[root@c193fcb41eae local]# ln -s /usr/local/mysql/include/ /usr/local/include/mysql

[root@c193fcb41eae local]# echo ‘/usr/local/mysql/lib’ > /etc/ld.so.conf.d/mysql.conf

[root@c193fcb41eae local]# ldconfig

//创建数据存放目录

[root@c193fcb41eae local]# mkdir -p /opt/data

[root@c193fcb41eae local]# chown -R mysql.mysql /opt/data/

[root@c193fcb41eae local]# ls -l /opt/data/

total 0

//初始化数据库

[root@c193fcb41eae local]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data

2021-12-03T16:29:44.502079Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2021-12-03T16:29:44.673278Z 0 [Warning] InnoDB: New log files created, LSN=45790

2021-12-03T16:29:44.703121Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2021-12-03T16:29:44.759550Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 395770aa-5456-11ec-a2ae-0242ac110003.

2021-12-03T16:29:44.761730Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.

2021-12-03T16:29:45.276899Z 0 [Warning] CA certificate ca.pem is self signed.

2021-12-03T16:29:45.631478Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

//生成配置文件

[root@c193fcb41eae local]# cat > /etc/my.cnf <<EOF

[mysqld]

basedir = /usr/local/mysql

datadir = /opt/data

socket = /tmp/mysql.sock

port = 3306

pid-file = /opt/data/mysql.pid

user = mysql

skip-name-resolve

EOF

//修改

[root@c193fcb41eae local]# sed -ri ‘s#^(basedir=).*#\1/usr/local/mysql#g’ /usr/local/mysql/support-files/mysql.server

[root@c193fcb41eae local]# sed -ri ‘s#^(datadir=).*#\1/opt/data#g’ /usr/local/mysql/support-files/mysql.server

[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:*

//启动

[root@c193fcb41eae local]# /usr/local/mysql/support-files/mysql.server start

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

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

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
w53in5-1713824735143)]

[外链图片转存中…(img-Ul0UPppw-1713824735143)]

[外链图片转存中…(img-ZzAepNXm-1713824735144)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

[外链图片转存中…(img-jltVvVxy-1713824735144)]

总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

[外链图片转存中…(img-Mrne2R9K-1713824735144)]

[外链图片转存中…(img-A6VsP9vJ-1713824735145)]

[外链图片转存中…(img-94Sfx3qa-1713824735145)]

[外链图片转存中…(img-7oHZrkoK-1713824735145)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值