安装说明

Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

yum安装docker
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

#查看你当前的内核版本
uname -r

#安装 Docker
yum -y install docker

#启动 Docker 后台服务
service docker start

查看docker版本

docker -v

设置开机启动

systemctl enable docker

所有docker下运行的软件我们能在dockerhub找到。

Dockerhub:https://hub.docker.com/search?q=&type=image
Nginx仓库:https://hub.docker.com/_/nginx/
PHP仓库:https://hub.docker.com/_/php/
MySQL仓库:https://hub.docker.com/_/mysql/

接下来我们将lnmp环境所需的镜像pull下来

docker pull nginx:latest   #下载最新nginx镜像
docker pull mysql:latest   #下载最新的mysql镜像
docker pull devilbox/php-fpm:7.2-prod-0.106     #下载标签为7.2-prod-0.106的php镜像

由于docker为一个容器一个服务,lnmp则需要三个容器,分别运行nginx,mysql,php。
但是各容器之间不会相互通信,所以为了让容器之间相互通信我们要建立一个网络。

#查看docker下的网络
docker network ls
#创建一个网络,命名为lnmp
docker network create lnmp

此时已经创建network为lnmp了

运行nginx容器

docker run -itd -p 80:80 --name nginx --network lnmp -v /tmp/lnmp/html:/usr/shar/nginx/html nginx:latest

解释:
1、-d代表后台运行该容器
2、-name设置容器的名字为nginx,
3、-p将宿主机的80端口映射给容器的80端口,
4、-v将宿主机下的/tmp/lnmp/html目录和容器里面的/usr/shar/nginx/html进行绑定,
5、--network将nginx容器加入到名为lnmp的网络中去
此时nginx安装完成。

运行php-fpm容器

docker run -d --name php --network lnmp -v /tmp/lnmp/www:/www devilbox/php-fpm:7.2-prod-0.106

配置nginx和php
进入容器有四种方法

#docker attach
#SSH
#nsenter
#exec

此处博主使用exec进入nginx容器

docker exec -it c4ec54 /bin/sh   #此处的c4ec54为nginx的container前几位

修改/etc/nginx/conf.d/default.conf的两处

写入一个phpinfo查看

启动mysql容器

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network lnmp mysql

解释:
1、--name为容器的名字为my-mysql
2、-p为将宿主机的3306端口绑定到容器的3306端口
3、-e MYSQL_ROOT_PASSWORD=123456为设置密码为123456
4、--network 为将mysql容器加入到lnmp网络

测试连接

<?php
//这里的重点就是这个host是容器my-mysql,因为my-php和my-mysql在一个网络下,所以可以直接用容器的名字去访问这个容器
$con = new mysqli("my-mysql","root","123456");
if (!$con)  { 
    die('Could not connect: ' . mysql_error()); 
}
echo "连接成功";
?>

此时docker下的lnmp就算搭建完成。
需要注意的是搭建lnmp环境步骤需要先安装nginx再php再mysql。

Last modification:December 14th, 2021 at 10:06 am