# Linux部署Docker问题总结
![](https://img.kancloud.cn/60/62/60625e20c6d31072da885e0b44f5b3f7_480x270.png)
> #### 手册阅读须知:
> 本手册仅针对Linux版本做详情介绍,本手册仅针对Docker部署版本(使用左右键(`<-- 和 -->`)翻页阅读)
# 问题:
* [ ] > ### **`问题一`**: centos7.2 系统安装完docker 和docker-compose后,将docker-compose.yml和对应文件(DockerFile等)及文件夹还有.env文件创建完成后,直径使用```docker-compose up -d```,出现下图报错yum无法使用:
![](https://img.kancloud.cn/72/94/729484fc1309f427883b2563e552d000_820x277.png)
![](https://img.kancloud.cn/28/6d/286d53174f242e25262320901ee2a94d_779x432.png)
解决方法:直接更新yum源,因为yum版本太老,需要更新yum,更新yum命令为:<span style="color:red;font-size:20px;font-weight:bolder">```yum clean all && yum update```</span>
* [ ] > ### **`问题二`**: centos7.2安装docker 出现以下错误:configuration option "php_ini" is not set to php.ini location
![](https://img.kancloud.cn/f1/f5/f1f5f6c602306404b9637789d6f337a9_907x143.png)
解决方法:
* [ ] > ### **`问题三`**: 安装完成以后,进入容器,使用Vim查询文件内的内容,提示无权限(原因是指定了特定的普通用户),下图所示:
![](https://img.kancloud.cn/40/8e/408ef75c9b31c4cba09bf0b34654f41d_721x83.png)
解决方法:直接使用超级用户root用户或创建一个用户(给指定用户容器的权限,百度查资料),使用创建的用户,进入容器,执行安装Vim命令即可,这里我使用的root直接进入容器,命令为:```docker exec -it --user root lnmp_php /bin/bash```即可进入容器,进行安装Vim包操作
* [ ] > ### **`问题四`**: # docker-compose.yml 文件更改后重新启动加载更改后的内容
命令:docker-compose up --force-recreate -d
* [ ] > ### **`问题五`**: 安装完成后,我们会发现其他服务都正常运行,但是mysql却一直在重试重启,使用docker-compose命令查看mysql日志(命令:docker-compose logs mysql)提示报错:```# Could not open file ‘/var/log/mysqld.log‘ for error logging: Permission denied```,截图所示:
![](https://img.kancloud.cn/8a/19/8a19487abce80ba89e388e3312117943_1343x450.png)
解决方法:在mysql容器外部,进入mysql目录,给log赋权限777,重启mysql服务即可【以下3条是解决问题命令】
1:切换目录命令:```cd /workspace/html/config_dev/mysql/```
2:执行赋权限命令:```chmod -R 777 ./log/*```
3:切换目录命令:```docker-compose restart mysql(是服务名,不是容器别名)```
4:mysql容器成功启动截图:
![](https://img.kancloud.cn/aa/b9/aab9e21665e5873a2b424fa115a58722_1481x349.png)
* [ ] > ### **`问题六`**: mysql启动成功后,使用任意账号或密码都可以连接mysql,是因为mysql数据库中的user表没有设置密码(docker-compose 其实没有设置mysql密码成功),我们要实现的是远程连接+账号密码访问数据库
解决方法:
1:在mysql容中,进入mysql
命令1:docker exec -it lnmp_mysql(容器ID或名) /bin/bash;
命令2:mysql -u root -p;
命令3:随便输入密码,之后进入mysql
2:use mysql;(使用mysql数据库)
3:给mysql重新设置密码:```update user set authentication_string=PASSWORD("111111") where user='root';```
4:执行命令:```update user set plugin="mysql_native_password";```
5:刷新权限:```flush privileges;```
6:此时我们只能在服务器内部连接mysql,如果需要外部,可以将root的localhost权限给到%即可,具体操作如下:
操作前我们可以通过命令:```select host, user from user;```查看用户和对应权限【下图可知权限仅在本地连接】
![](https://img.kancloud.cn/22/d4/22d431658e53379f8b053c2dc0d64e3b_331x182.png)
6.1:执行开启远程访问mysql命令:```update user set Host='%' where User='root';```
6.2:刷新权限:```flush privileges;```
6.3:以上两步即可实现mysql远程访问链接,使用navicate 连接如下:
![](https://img.kancloud.cn/d0/59/d0593e9e0ac5ab35549a656e50a744b7_1462x805.png)
* [ ] > ### **`问题七`**: 安装完成后,需要给php,mysql指定环境变量,否则如果是使用宝塔,之前安装过php和mysql,直接使用命令:```php -v```(php版本信息) 或 ``` mysql -V```(mysql版本信息),就会查询到之前在系统安装的php或mysql版本
解决方法:
- Docker容器化部署使用说明书
- 环境部署
- Windows系统
- Windows部署Docker
- 安装过程可能碰到的问题总结
- Docker部署环境
- Docker hub操作
- Docker 部署 laravel5.5问题总结
- Docker处理中文乱码问题
- Linux系统
- Centos7.2部署Docker
- Linux部署Docker准备前工作
- 部署docker问题总结
- Linux部署Docker粗略笔记
- 安装git
- Docker命令大全
- 问题
- php7.4 安装xlswriter扩展
- php7.2 DockerFile文件
- dockerFile和docker-composer区别
- docker-compose的使用
- docker-compose的使用问题总结
- docker-compose
- Windows系统
- docker-compose.yml编写
- nginx目录如下
- conf.d
- default.conf
- nginx.conf
- php目录如下
- Dockerfile
- redis目录如下
- redis.conf
- docker-compose使用说明
- Linux系统
- /workspace/html/config_dev
- html
- index.html
- index.php
- nginx
- conf
- nginx.production.conf
- conf.d
- default.conf
- log
- access.log
- error.log
- Dockerfile
- php
- conf
- php.production.ini
- php-fpm.conf
- log(目录)
- php-fpm.d
- www.conf
- supervisor
- conf
- log
- Dockerfile
- .env
- docker-compose.yml