Dockerfile搭建LNMP环境

dockerfile搭建LNMP

1、准备工作

安装Docker过程略。。。

创建一个空的文件夹,然后进行后续操作

mkdir docker_lnmp
cd docker_lnmp

nginx配置文件:default.conf

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    
    index index.php index.html index.htm index.nginx-debian.html;
    server_name _;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
        include fastcgi_params;
    }
}

启动文件:start.sh

# 启动nginx
service nginx start

# 启动mysql
service mysql start

# 启动php7.1-fpm
service php7.1-fpm start

2、dockerfile文件

FROM ubuntu

MAINTAINER bestphp "[email protected]"

RUN apt-get update
#安装vim、curl、gcc
RUN apt-get install -y vim curl gcc

#配置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#安装php7.4
RUN apt-get install -y php7.4
RUN apt-get install -y php7.4-curl php7.4-fpm php7.4-gd php7.4-mysqlnd php7.4-mbstring php7.4-ldap php7.4-soap php7.4-mongod php7.4-soap php7.4-sqlite3 \
php7.4-xml \
php7.4-zip \
php7.4-intl \
php7.4-imagick \
php7.4-xdebug

# 安装composer
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
# 设置composer源为阿里云
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# 安装mysql
RUN apt-get install -y mysql-server mysql-client

#安装nginx
RUN apt-get install -y nginx
#nginx默认配置文件
COPY ./default.conf /etc/nginx/conf.d/default.conf

# 添加启动脚本
ADD ./start.sh /start.sh
RUN chmod 755 /start.sh

CMD /start.sh && tail -f

# 暴露端口
EXPOSE 3306
EXPOSE 80

3、创建镜像

docker build -t bestphp/docker_lnmp:v1 .

4、查看本地镜像

docker images | grep bestphp/docker_lnmp

5、运行容器

docker run -id -p 80:80 -v /home/homework/docker/my_lnmp/www/:/var/www/html --name my_docker_lnmp bestphp/docker_lnmp:v1

6、测试环境是否正常运行

cd www
touch index.php

vim index.php

#内容如下

异常:

  • nginx启动失败

1、修改配置文件:/etc/nginx/nginx.conf,注释掉如下代码

include /etc/nginx/sites-enabled/*;

2、修改Dockerfile(配置nginx的默认配置文件,默认文件冲突导致)

#nginx默认配置文件 COPY ./default.conf /etc/nginx/sites-enabled/default

 

 

你可能感兴趣的:(Linux,linux,docker)