如何在Docker容器中运行LNMP
·
1.安装相关软件包
sudo yum install docker-ce docker-ce-cli containerd.io
2.安装Python包管理工具pip
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
运行以下命令来安装pip
python get-pip.py
查看pip是否安装成功
pip --version
3.安装docker-compose
pip install docker-compose
pip install --ignore-installed requests
查看安装的docker-compose版本
docker-compose -v
返回版本信息
/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
from cryptography.hazmat.backends import default_backend
docker-compose version 1.26.2, build unknown
4、创建docker-compose文件并编辑脚本
vim /etc/docker/docker-compose.yml
编辑要拉取的docker镜像
例如 nginx:1.26 php:7.4-fpm mysql:5.7.40
version: '3.8'
services:
nginx:
image: nginx:1.26 # 使用nginx镜像的1.26版本
ports:
- "80:80" # 将主机的80端口映射到容器的80端口
volumes:
- /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf # 挂载nginx配置文件
- /data/www/html:/var/www/html # 挂载网站文件目录
depends_on:
- php # 依赖于php服务启动
networks:
- lnmp_network # 连接到lnmp_network网络
php:
image: php:7.4-fpm # 使用php镜像的7.4-fpm版本
volumes:
- /data/www/html:/var/www/html # 挂载网站文件目录
networks:
- lnmp_network # 连接到lnmp_network网络
mysql:
image: mysql:5.7.40 # 使用mysql镜像的5.7.40版本
environment:
MYSQL_ROOT_PASSWORD: test123 # 设置MySQL的root密码
MYSQL_DATABASE: test # 创建名为test的数据库
networks:
- lnmp_network # 连接到lnmp_network网络
networks:
lnmp_network:
driver: bridge # 使用bridge网络驱动器创建lnmp_network网络
文件挂载指令:在左侧的路径是主机目录,右侧的路径是容器内的目录
5.执行docker-compose脚本
cd /etc/docker #进入到docker-compose目录下
docker-compose up -d #执行脚本
等待脚本执行完成。。。
6.查看容器是否创建
docker ps
有下列进程信息
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e9bae72222a nginx:1.26 "/docker-entrypoint.…" 5 days ago Up 3 days 0.0.0.0:80->80/tcp, :::80->80/tcp docker_nginx_1
5a6aa925c8c3 mysql:5.7.40 "docker-entrypoint.s…" 5 days ago Up 3 days 3306/tcp, 33060/tcp docker_mysql_1
004186b47e95 php:7.4-fpm "docker-php-entrypoi…" 5 days ago Up 3 days 9000/tcp docker_php_1
7.验证容器是否正常运行
①验证nginx:
浏览器中输入 http://[服务器ip地址] 成功访问nginx欢迎页面
②验证mysql
进入mysql容器
docker exec -it docker_mysql_1 /bin/bash
登录mysql
mysql -u root -p
输入账号密码后成功进入数据库
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 993
Server version: 5.7.40 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, 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>
用以下命令查看是否存在docker-compose脚本创建的数据库
show databases;
结果如下:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
以上说明数据库成功运行
③验证php
创建一个index.php在nginx宿主机的网站目录下
<?php
phpinfo();
?>
同时nginx配置文件中添加php处理块
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
重启nginx后能正常访问php主页即可
更多推荐



所有评论(0)