關于docker的詳細安裝與原理不做過多介紹, 我一般只用nginx+php+mysql開發用, 因為之前有幾套不同版本的代碼所以用docker來解決
我這里直接在docker下使用容器來關聯的 并沒有單獨安裝系統 因為本地開發 裝系統在裝插件會占很大內存
- mysql 我一般習慣先裝mysql 這樣按順序往下執行
docker pull mysql:5.6
安裝mysql5.6
運行mysql
docker run -itd --name mysql-dev -p 33060:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 742f7d5a4104
--name 起一個名字不和存在的容器重復 因為本地還有3306端口占用所有換了一個端口 --privileged=true 使用root權限 后邊是密碼 742f7d5a4104這個是鏡像的id 可以使用 docker images 查看剛下載的mysql鏡像id
運行后出現一串字符串則運行成功了
- 安裝php7.2
docker pull php:7.2-fpm
docker run --name shop-php -d -p 9000:9000 -v /Users/gly/Desktop/work/php/tpshop:/var/www/html --link mysql-dev bfa9828f1dc3
關聯上邊的mysql-dev啟動 設置好路徑映射
- 安裝nginx
docker pull nginx
docker run --name shop-nginx -d -p 10000:80 -v /Users/gly/Desktop/work/php/tpshop:/usr/share/nginx/html --link shop-php --volumes-from shop-php c7460dfcab50
關聯php運行映射端口號10000 關聯項目路徑
這時候還需要修改nginx配置文件
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
root html;
fastcgi_pass shop-php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/var/www/html$fastcgi_script_name;
include fastcgi_params;
}
shop-php:9000 是修改后的
docker cp /Users/gly/Desktop/work/docker/default.conf shop-nginx:/etc/nginx/conf.d/default.conf
docker restart nginx
替換配置文件 重啟nginx
運行項目php還需要安裝擴展
docker exec -i -t shop-php /bin/bash 以終端模式進入php
php -m 查看擴展
docker-php-ext-install pdo_mysql
安裝yaf擴展
RUN pecl install yaf-3.0.8 && docker-php-ext-enable yaf
配置入口路徑
root /usr/share/nginx/html/public;
fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
獲取容器內ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器name或id
修改php.ini 直接在下邊增加ini文件就可以了
yaf-php:/usr/local/etc/php/conf.d/yaf.ini
docker 常用的命令
docker pull 拉取鏡像
docker images 列出本地鏡像
docker ps 顯示正在運行的容器
docker ps -a 顯示所有容器
docker rm 容器名 刪除容器
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱|容器id 查看容器ip
docker cp 目錄 容器:目錄 復制文件
docker start/restart/stop 容器名 啟動/重啟/停止 容器
docker exec -i -t 容器名 /bin/bash 終端形式進入容器 exit 退出容器命令
docker php 安裝擴展 pecl install yaf-3.0.8 && docker-php-ext-enable yaf 類似方法 (正常可以先執行后邊,有的php已經安裝了 像pdo_mysql直接執行后邊就可以了 如果不好用在前面的)
修改php.ini 直接在下邊增加ini文件就可以了
容器名稱:/usr/local/etc/php/conf.d/myphp.ini
修改mysql配置 /etc/mysql/my.cnf
mysql -uroot -p123456 進入mysql操作
分享一個docker配置讀寫分離的文章我測試過了沒有問題
重啟 php 與 nginx 至此配置完畢 本人也是剛開始使用, 如果問題提出來大家一起驗證