# docker_php **Repository Path**: ying.com/docker_php ## Basic Information - **Project Name**: docker_php - **Description**: 学习docker和docker-compose,集成ClickHouse、Elasticsearch、Kafka、MySQL、Redis、PHP、MySQL等内容。让开发、测试和本地环境一键部署更简单 - **Primary Language**: Docker - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 1 - **Created**: 2021-06-22 - **Last Updated**: 2024-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: ElasticSearch, Docker, PHP, docker-compose, Kafka ## README # docker_php #### 介绍 一个简单使用docker部署php环境 #### 目录结构 ```bash . ├── data 数据目录 │ ├── clickhouse ClickHouse数据目录 │ ├── elasticsearch Elasticsearch数据目录 │ ├── kafka Kafka数据目录 │ ├── mysql MySQL数据目录 │ ├── php_composer PHP_Composer数据目录 │ ├── redis Redis数据目录 │ └── zookeeper ZooKeeper数据目录 ├── log 日志目录 │ ├── clickhouse ClickHouse日志目录 │ ├── nginx Nginx日志目录 │ └── php PHP日志目录 ├── services 程序目录(含配置文件) │ ├── clickhouse ClickHouse配置文件 │ ├── elasticsearch Elasticsearch配置文件 │ ├── mysql MySQL配置文件 │ ├── nginx Nginx程序目录(含配置文件) │ ├── php PHP程序目录(含配置文件) │ ├── php_extensions PHP扩展程序目录 │ └── redis Redis数据目录 ├── www PHP代码程序 ├── docker-compose.yml.example Docker服务配置示例文件 └── env.example 环境配置示例文件 ``` #### 安装教程 ⚠️记得如果不是root账号需要前面加`sudo` 1. CentOS 7.6安装docker: ```bash 1. curl -sSL https://get.daocloud.io/docker | sh 2. yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 3. yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4. yum install docker-ce docker-ce-cli containerd.io 5. systemctl start docker ``` 2. CentOS 7.6安装docker-compose: ```bash 1. curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2. chmod +x /usr/local/bin/docker-compose 3. ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 测试是否安装成功: 4. docker-compose --version ``` 3. CentOS 7.6设置开机自动启动docker: ```bash systemctl enable docker.service ``` 4. 拷贝并命名配置文件(Windows系统请用`copy`命令),启动: ```bash $ cd docker_php # 进入项目目录 $ cp env.example .env # 复制环境变量文件 $ cp docker-compose.yml.example docker-compose.yml # 复制 docker-compose 配置文件。默认启动3个服务: $ docker-compose up # 启动 ``` #### 网速太慢,无法下载或者`Get https://registry-1.docker.io/v2/`错误可以用以下方法解决 1. 切换国内镜像`$ vi /etc/docker/daemon.json` ```bash { // 阿里云镜像 "registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"] // 中科院镜像 // "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"] } ``` 2. 重启docker和daemon ```bash systemctl daemon-reload systemctl restart docker ``` 3. 继续执行`$ docker-compose up` #### 使用说明 1. docker-compose常用命令有: ```bash $ docker-compose up # 创建并且启动所有容器 $ docker-compose up -d # 创建并且后台运行方式启动所有容器 $ docker-compose up nginx php mysql # 创建并且启动nginx、php、mysql的多个容器 $ docker-compose up -d nginx php mysql # 创建并且已后台运行的方式启动nginx、php、mysql容器 $ docker-compose start php # 启动服务 $ docker-compose stop php # 停止服务 $ docker-compose restart php # 重启服务 $ docker-compose build php # 构建或者重新构建服务 $ docker-compose rm php # 删除并且停止php容器 $ docker-compose down # 停止并删除容器,网络,图像和挂载卷 ``` #### 常见问题 1. 可以用命令`docker exec -it`进入到容器,我们可以通过`~/.bashrc`或者`~/.zshrc`文件, 加上`alias docker_mysql='docker exec -it mysql mysql -hlocalhost -uroot -p'`来快捷进入mysql。 在这里记得注意的是保存后执行`source ~/.bashrc`命令。 2. `docker ps`命令查看所有运行中的容器,后面携带`-a`可以查看所有容器 3. Syntax error: end of file unexpected (expecting “then“) 或者Syntax error: end of file unexp ```bash 在vim下,文件结尾 输入 :set fileformat=unix修改ubuntu 和linux服务器、 dos等非图形界面冲突 :wq保存 ``` 4. 如果docker-client很卡可以试试关闭以下开关,不过关闭会导致镜像和容器丢失 ```bash Use the WSL 2 based engine ``` 5. window安装出现install.sh: line 25: syntax error: unexpected word (expecting "do")或者文件没有权限。可以通过vscode把shell文件CRLF格式改成LF