根據上篇內容大致對docker入了個門,現在進一步搭建開發環境瞭解docker
docker安裝php
上篇文章我已經安裝了nginx環境,現在這裡演示安裝php+nginx環境
首先拉取官方映象,標籤為7.2-fpm
使用命令docker pull php:7.2-fpm
拉取映象
啟動php容器
使用命令docker run --name myphp-fpm -v /root/nginx/www:/www -itd php:7.2-fpm
啟動php容器
其中--name myphp-fpm : 將容器命名為 myphp-fpm
-v /root/nginx/www:/www : 將主機中專案的目錄 www 掛載到容器的 /www
建立目錄mkdir -p /root/nginx/conf/conf.d
在該目錄下新增 /root/nginx/conf/conf.d/test-php.conf 檔案,內容如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
配置檔案說明:
- php:9000: 表示 php-fpm 服務的 URL。
- /www/: 是 myphp-fpm 中 php 檔案的儲存路徑,對映到本地的 /root/nginx/www 目錄。
啟動nginx容器
docker run --name php-nginx -p 8083:80 -d \
-v /root/nginx/www:/usr/share/nginx/html:ro \
-v /root/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
--link myphp-fpm:php \
nginx
引數說明
- -p 8083:80: 埠對映,把 nginx 中的 80 對映到本地的 8083 埠。
- ~/nginx/www: 是本地 html 檔案的儲存目錄,/usr/share/nginx/html 是容器內 html 檔案的儲存目錄。
- ~/nginx/conf/conf.d: 是本地 nginx 配置檔案的儲存目錄,/etc/nginx/conf.d 是容器內 nginx 配置檔案的儲存目錄。
- –link myphp-fpm:php: 把 myphp-fpm 的網路併入 nginx,並通過修改 nginx 的 /etc/hosts,把域名 php 對映成 127.0.0.1,讓 nginx 通過 php:9000 訪問 php-fpm。
接下來我們在 /root/nginx/www 目錄下建立 index.php,程式碼如下:
<?php
echo phpinfo();
?>
訪問域名,可成功訪問表示環境配置成功
教程其實是參考這裡Docker 安裝 PHP
docker安裝mysql
使用命令docker pull mysql:5.7.33
拉取mysql5.7版本映象
使用命令docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.33
執行容器
- -p 3306:3306 :對映容器服務的 3306 埠到宿主機的 3306 埠,外部主機可以直接通過 宿主機ip:3306 訪問到 MySQL 的服務。
- MYSQL_ROOT_PASSWORD=123456:設定 MySQL 服務 root 使用者的密碼。
可以使用命令docker exec -it mysql-test mysql -hlocalhost -uroot -p
訪問mysql容器
建立遠端訪問賬號
- 建立遠端訪問賬號:CREATE USER ‘test‘@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
- 賬號授權:GRANT ALL PRIVILEGES ON . TO ‘test‘@’%’;
- 重新整理許可權:FLUSH PRIVILEGES;
使用連線工具可成功連線
docker安裝redis
使用命令docker pull redis:latest
拉取最新的redis版本映象
使用命令docker run -itd --name redis-test -p 6379:6379 redis
執行容器
可正常使用redis服務
laradock配置開發環境
1.克隆laradock包到本地指定資料夾(與專案同級)
#碼雲
git clone https://gitee.com/anviod/laradock.git
#github
git clone https://github.com/Laradock/laradock.git
2.進入 laradock 目錄將 env-example 重新命名為 .env
3.執行命令docker-compose up -d nginx mysql
執行容器
執行完成後可通過docker ps
命令檢視一下容器執行情況
4.在laradock同級目錄建立wwwroot目錄並新增laravel專案
進入laradock目錄,執行命令docker-compose exec workspace bash
進入Workspace容器
通過使用 Composer 安裝 Laravel 安裝器
composer global require laravel/installer
在wwwroot目錄上,執行laravel new blog
新增一個新的laravel專案
5.配置訪問域名
我們需要到 laradock
下編輯 .env
中的 APP_CODE_PATH_HOST
配置項
APP_CODE_PATH_HOST=../wwwroot/
這樣就相當於為 wwwroot
與 Docker 的 /var/www
目錄建立了軟連結,然後我們修改 laradock/nginx/sites/default.conf
中的對映關係:
接下來,需要重啟 Docker 的 Nginx:
docker-compose up -d nginx
配置完成後通過埠訪問可正常訪問,也算配置成功啦
這裡我們設定的場景是新建一個應用,如果是多個應用的話要怎麼辦呢?也很簡單,就是在上述 wwwroot
目錄下建立多個應用目錄,然後在 laradock/nginx/sites
下對應建立多個配置檔案,最後不要忘記在系統 /etc/hosts
中配置相關域名繫結 IP 即可。
部分內容參考使用 Laradock 搭建基於 Docker 的 PHP 開發環境
本作品採用《CC 協議》,轉載必須註明作者和本文連結