Docker部署lnmp环境(基础版)

1、卸载旧的版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2、docker安装开始

1、设置存储库

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

2、安装docker(二者选其一)

yum安装:

yum install docker-ce docker-ce-cli containerd.io

curl安装:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

3、启动docker

systemctl start docker
docker version //查看当前版本

3、拉取相关镜像

1、首先可以先查找需要的镜像

docker serach name //查找相关镜像 name代表镜像名

例子:
查找nginx的镜像,选择自己需要的版本(注意图片选取部分代表是官方认证的)
Docker部署lnmp环境(基础版)_第1张图片

2、拉取镜像

docker pull name:版本 //拉取相关镜像 name代表镜像名 版本是拉取的镜像版本 默认是latest 最新版

我再写的详细点吧,作参考就行,具体装的时候还是要装项目需要的版本。
php-fpm

docker pull php:7.4-fpm

nginx

docker pull nginx

redis

docker pull redis:3.2

mysql

docker pull mysql:5.6

4、构建容器

构建mysql容器

docker run -p 3306:3306 --name mysql -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6

注:-v 本地路径:容器路径

构建redis容器

docker run --name redis -p 6379:6379 -v /data/redis/conf/:/etc/redis/redis.conf -d redis:3.2

构建php-fpm容器

docker run -p 9000:9000 --name  php-fpm -v /var/www:/var/www/html -v /var/php:/usr/local/etc/php  --link mysql:mysql --link redis:redis --privileged=true -idt php:7.4-fpm

构建nginx容器

docker run -p 80:80 --name nginx  --privileged=true -v /var/nginx:/usr/share/nginx/html  -v /var/www:/var/www/html  -v  /var/nginx/log:/var/log/nginx --link php-fpm:php  -d nginx:latest

5、进入容器

进入php-fpm容器

docker exec -ti php-fpm /bin/bash

安装php扩展

docker-php-ext-install pdo pdo_mysql
docker-php-ext-install redis

redis安装报错,手动下载wget pecl.php.net/get/redis-3.1.0.tgz,解压tar -zxvf redis-3.1.0.tgzcp –r 下载目录 /usr/src/php/ext/redis,然后再执行docker-php-ext-install redis,最后可以php -m | grep redis测试扩展是否安装成功

nginx容器的conf.d中项目配置文件

server {
        listen       80;
        server_name  localhost; //自己项目域名
        root    /var/www/html/项目路径/;
        location / {
            index  index.html index.htm index.php l.php;
           autoindex  on;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9000;  //这里的ip要换成容器名
            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;
        }

}

一定要注意里面的ip换成容器名

6、提交容器生成新的镜像

Docker commit –a 作者 –m 提交信息 容器ID 新的镜像名

你可能感兴趣的:(docker,php,docker,lnmp,php)