# Linux部署Docker問題總結

> #### 手冊閱讀須知:
> 本手冊僅針對Linux版本做詳情介紹,本手冊僅針對Docker部署版本(使用左右鍵(`<-- 和 -->`)翻頁閱讀)
# 問題:
* [ ] > ### **`問題一`**: centos7.2 系統安裝完docker 和docker-compose后,將docker-compose.yml和對應文件(DockerFile等)及文件夾還有.env文件創建完成后,直徑使用```docker-compose up -d```,出現下圖報錯yum無法使用:


解決方法:直接更新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

解決方法:
* [ ] > ### **`問題三`**: 安裝完成以后,進入容器,使用Vim查詢文件內的內容,提示無權限(原因是指定了特定的普通用戶),下圖所示:

解決方法:直接使用超級用戶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```,截圖所示:

解決方法:在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容器成功啟動截圖:

* [ ] > ### **`問題六`**: 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;```查看用戶和對應權限【下圖可知權限僅在本地連接】

6.1:執行開啟遠程訪問mysql命令:```update user set Host='%' where User='root';```
6.2:刷新權限:```flush privileges;```
6.3:以上兩步即可實現mysql遠程訪問鏈接,使用navicate 連接如下:

* [ ] > ### **`問題七`**: 安裝完成后,需要給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