容器部署 - 容器说明
系统坏境:
centos:CentOS Linux release 7.8.2003 (Core)
nginx:nginx version: nginx/1.16.1
mysql:mysql Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)
php: PHP 7.3.24 (cli) (built: Oct 27 2020 11:01:59) ( NTS )
系统服务路径:
nginx:
配置路径:安装后默认 /etc/nginx
日志路径:安装后默认 /var/log/nginx/ (配置文件中可查看 )
文件监听路径:安装后默认 /usr/share/nginx/html (配置文件中可查看 )
mysql:
配置文件:安装后默认 /etc/my.cnf
数据路径:安装后默认 /var/lib/mysql (配置文件中可查看 )
日志路径:安装后默认 /var/log/mysqld.log (配置文件中可查看 )
php:
配置文件:安装后默认 /etc/opt/remi/php73/
运行命令:
0. 下载镜像:
docker pull caesartang/centos7-lnmp:centos7.8nginx1.16mysql8.0php7.3
1. 运行:
docker run -itd -p 80:80 -p 443:443 -p 3306:3306 —privileged=true —name=lnmp-centos7.8nginx1.16mysql8.0php7.3 caesartang/centos7-lnmp:centos7.8nginx1.16mysql8.0php7.3 /usr/sbin/init
端口说明:
80:http监听端口
443:https监听端口
3306:mysql监听端口
注:运行前请打开服务器对应端口;采用上述命令运行后,产生的数据及日志文件都在容器内,若需容器和宿主机打通,可按需调整命令
docker命令大全:https://docs.docker.com/engine/reference/commandline/run/
2. 进入容器:
docker exec -it 容器id /bin/bash
3. 查看mysql临时密码:
grep “A temporary password” /var/log/mysqld.log
容器部署 - Centos7 - 搭建lnmp环境
一. 安装docker:
参考文档:
https://www.runoob.com/docker/centos-docker-install.html
1. 手动安装
(1) 卸载旧版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
(2)安装所需的软件包:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
(3).设置稳定的仓库:
sudo yum-config-manager \
—add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
(4) 安装 Docker Engine-Community ( 如果提示您接受 GPG 密钥,请选是 )
sudo yum install docker-ce docker-ce-cli containerd.io
(5)启动docker
sudo systemctl start docker
(6)测试是否安装成功 ( 测试完成记得删除镜像及容器 )
sudo docker run hello-world
(7)Docker 镜像加速
Docker官方提供的中国镜像库:https://registry.docker-cn.com
七牛云加速器:https://reg-mirror.qiniu.com
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{“registry-mirrors”:[“https://reg-mirror.qiniu.com“]}
2. 自动安装
curl -fsSL https://[get.docker.com](http://get.docker.com/) | bash -s docker —mirror Aliyun
3. 将当前账号加入到docker 用户组
为了避免每次使用 Docker 命令时都需要切换到特权身份,可以将当前用户加入安装中自动创建的 docker 用户组:
sudo usermod -aG docker USER NAME
二. 搭建lnmp坏境之安装centos系统:
1. 拉取centos镜像
docker pull centos:centos7
2. 查看本地已有的镜像
docker images
3. 使用centos镜像创建并运行容器
docker run -itd -p 80:80 -p 443:443 -p 3306:3306 —privileged=true —name=centos7-lnmp centos:centos7 /usr/sbin/init
参数说明:
-i: 交互式操作
-t: 终端
-p: 端口
-d: 加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
—privileged: 是否允许container内的root拥有真正的root权限
—name: docker运行的名称
centos: centos 镜像
端口说明:
80: http端口
443: https端口
3306: 数据库端口
4. 查看当前运行的容器
docker ps -a
5. 进入容器
docker exec -it 容器id /bin/bash
三. 搭建lnmp坏境之centos系统安装nginx:
1. 使用EPEL方式安装nginx
yum install epel-release
yum update
yum install nginx
2. 启动nginx服务
systemctl start nginx
3. 查看nginx服务是否启动
ps -ef | grep nginx
4. 将nginx服务加入开机启动
systemctl enable nginx
四. 搭建lnmp坏境之centos系统安装php7.3:
1. 安装 EPEL 源
yum install epel-release
2. 安装 REMI 源
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
// centos8出现nothing provides epel-release = 7 needed by remi-release-7.8-1.el7.remi.noarch时可使用
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
// 查看源
yum repolist
3. 安装 php7.3
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xml
4. 启动php
systemctl start php73-php-fpm
5. 查看php服务是否启动
ps -ef | grep php
6. 将nginx服务加入开机启动
systemctl enable php73-php-fpm
五. 搭建lnmp坏境之nginx转发php请求:
1. 进入nginx配置目录
cd /etc/nginx/ && ll
2. 修改默认的nginx配置文件(nginx.conf),将如下代码加入到 server 块中
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ .php(.)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
3. 重启nginx服务
systemctl restart nginx
4. 测试nginx是否可转发php请求
进入到 nginx 默认配置中的文件监听路径(路径可在nginx默认配置里查看),创建 phpinfo.php 文件, 文件内代码如下:
<?php
phpinfo();
?>
*5. 通过 ip/phpinfo.php 访问,即可查看php信息
通过访问,会产生nginx日志(路径可在nginx默认配置里查看)
六. 搭建lnmp坏境之centos系统安装mysql8 :
1. 查找并删除mysql的目录
find / -name mysql
2. 配置Mysql 8.0安装源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
3. 安装Mysql 8.0
yum —enablerepo=mysql80-community install mysql-community-server
4. 启动mysql服务
systemctl start mysqld
5. 查看mysql服务是否启动
ps -ef | grep mysqld
6. 将mysql服务加入开机启动
systemctl enable mysqld
7. 登录mysql,修改root临时密码,并创建新账号
(1)查看临时密码
grep “A temporary password” /var/log/mysqld.log
(2) 登陆root账号
mysql -u root -p
(3) 修改root账号密码(需设置符合策略的密码(大小写字母+数据+符号),否则会报错)
错误示例:ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘123456’;
(4) 刷新权限
FLUSH PRIVILEGES;
(5) 创建新账号,并允许远程访问
示例: create user ‘新账号’@’%’ identified with mysql_native_password by ‘密码’;
(6) 添加权限
GRANT ALL ON . TO ‘新账号’@’%’;
(7) 刷新权限
FLUSH PRIVILEGES;
(8) 退出并测试新账号是否可登录
quit;
mysql -u 新账号 -p
(9)测试外网是否可访问数据库(工具:navicat)
七. 搭建完成!