我用的是主机上的nginx,没有用docker安装nginx, 所以需要先在主机上安装nginx
# 更新系统yum
sudo yum update
# 安装安装包
sudo yum install epel-release
sudo yum install wget
# 安装Nginx
sudo yum install nginx
#启动
sudo systemctl start nginx
#开机自启动
sudo systemctl enable nginx
一、安装docker
# 1、更新系统软件包:
sudo yum update
# 2、安装Docker依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、添加Docker的yum源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、安装Docker引擎:
sudo yum install -y docker-ce
# 5、启动Docker服务:
sudo systemctl start docker
# docker常用命令
# 查看版本信息
docker --version
# 查看 Docker 的详细信息
docker info
# 查看当前正在运行的 Docker 容器
docker ps
# 进入容器查看
docker exec -it <容器名称或ID> bash
二、安装docker-composer
# 1、下载最新版本的Docker Compose:
curl -L https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# 或者:
curl -L http://mirror.azure.cn/docker-toolbox/linux/compose/v2.24.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
这里可能会遇到问题, 就是下载不了Docker Compose,或者版本不兼容问题,首先确认你的服务器是什么,比如我这里是centos7.5, 64位, 那么,可以直接去网站下载对应版本Index of /docker-toolbox/
选择对应版本下载后,把文件放到/usr/local/bin/docker-compose
然后给命令加上权限
# 2、添加可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
三、写docker-composer.yml配置文件
# 进入目录
cd /home
# 创建 docker-comser目录
mkdir docker-composer
# 进入docker-composer
cd docker-composer
# 创建dockoer-compser.yml
vi dockoer-compser.yml
version: '3'
# 表示使用 Docker Compose 的版本 3 语法
services:
app:
build: /home/mydemo
restart: always
container_name: mydemo
# 容器名称为mydemo
ports:
- "8000:9000"
# 主机8000端口映射到容器的9000端口,9000是php-fpm的默认端口处理php请求
volumes:
- /home/myDemo:/var/www/html/myDemo
#把你的laravel项目放到主机/home/myDemo下面
depends_on:
- redis
# redis
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
ports:
- 6379:6379
四、配置nginx
在nginx/conf.d/新建myHtml.conf
server {
listen 80;
server_name myDemo.com; # 这里填写你的项目域名
# 注意 这里写的是nginx容器中的目录,需要和你容器项目里面放的访问路径对应
root /var/www/html/myDemo/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# 注意这里需使用 主机:端口 的形式,这里8000就是docker-compose配置里面的主机端口,映射到容器的9000端口上处理php项目文件
fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 600;
include fastcgi_params;
}
error_log /var/log/nginx/myDemo-error.log;
}
五、写Dockerfile文件
该文件放在/home/myDemo下面,也就是项目根目录下面
FROM php:7.3-fpm
# 安装依赖
RUN apt-get update && apt-get install -y \
libzip-dev \
zip \
unzip \
&& docker-php-ext-install zip pdo_mysql
RUN apt-get install -y vim
# 安装 Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 设置工作目录
WORKDIR /var/www/html/myDemo
# 复制整个目录
COPY . /var/www/html/myDemo
# 设置文件和目录权限
RUN find /var/www/html/myDemo -type d -exec chmod 755 {} \; \
&& find /var/www/html/myDemo -type f -exec chmod 644 {} \; \ && chmod -R 777 /var/www/html/myDemo/storage/ /var/www/html/myDemo/public/ /var/www/html/myDemo/bootstrap/cache/ /var/www/html/myDemo/vendor/
# 其他配置和运行指令...
然后我们就可以启动构建容器
# 构建容器
docker-compose up -d
通过docker ps -a 可以看到容器是否已经启动
docker exec -it myDemo bash进入容器后,也可以安装需要的一些基本的命令包
# 安装vim
apt-get update && apt-get install -y vim
# 安装ls
apt-get update && apt-get install -y ps
# 安装ls
apt-get update && apt-get install -y losf