Docker 官方文件
https://docs.docker.com/install/linux/dock...
Laradock 官方文件
https://laradock.io/getting-started/
Laradock 相比其他虛擬環境,其實最大的優勢是可以在生產環境使用,本地和線上部署同一套環境,能儘可能減少環境帶來的隱藏問題,因此可以說是開發者的必備技能。
安裝 Docker
首先安裝 docker 倉庫
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
然後設定穩定版本的 dock 倉庫,倉庫用來確保執行 yum update 的時候不更新更高版本,如有錯誤理解請指正。
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安裝最新版本的 Docker Engine-Community 和 containerd,或者轉到下一步安裝特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
(可選)如果需要安裝特定版本
# 列出可用版本
yum list docker-ce --showduplicates | sort -r
# 安裝特定版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
啟動 Docker
sudo systemctl start docker
透過執行 hello-world 映像來驗證是否正確安裝了 Docker Engine-Community 。
sudo docker run hello-world
出現 Hello from Docker! 說明 docker 安裝成功
安裝 Docker Compose
Compose 專案是Docker官方的開源專案,負責實現Docker容器叢集的快速編排。
由於 laradock 是由 docker-compose 命令來管理的,所以我們還需要安裝這個管理命令。
專案 GIT 地址 https://github.com/docker/compose/releases
注意安裝的版本,git 有版本對照表
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose\
chmod +x /usr/local/bin/docker-compose
檢視是否安裝成功
docker-compose -v
安裝 git (已安裝跳過)
yum install -y git
安裝 laradock
git clone https://github.com/Laradock/laradock.git laradock
也可直接獲取專案,這裡採用 git 方式安裝
安裝目錄可以和專案平級,也可以包含在專案中。
我們選擇的目錄結構
+ laradock
+ project1
+ project2
複製 laradock 配置檔案 .env
cp env-example .env
修改 .env 改為自己需要的引數
# 專案路徑,如果和 laradock 平級
APP_CODE_PATH_HOST=../
# PHP 版本號
PHP_VERSION=7.3
# Mysql 版本號
MYSQL_VERSION=5.7
啟動 laradock 容器
我們安裝 nginx mysql redis 三個容器,laradock 會預設安裝 php-fpm workspace 這兩個容器。這一步比較消耗時間,依據網路情況,預計30分鐘左右,請耐心等待。
docker-compose up -d nginx mysql redis
如果你需要進入容器,使用下列命令,如果使用 root 許可權,去掉 -user 引數就好。
docker-compose exec —user=laradock workspace bash
比如你需要 composer 安裝 laravel 包,比如設定定時任務,都需要在容器中進行。
安裝完成後,使用以下命令檢視
docker-compose ps
會列出正在執行的容器
Name Command State Ports
---------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp, 2376/tcp
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1 /bin/bash /opt/startup.sh Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
laradock_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
至此,環境搭建完成
如果某個服務狀態沒有啟動成功,重啟服務,下列命令為重啟、停止、啟動命令
docker-compose restart|stop|start nginx|mysql|php-fpm
如果想刪除某個容器或者更改相關版本,如下命令操作,我們以 mysql 為例
# 修改 .env 檔案
MYSQL_VERSION=5.7 # 預設為 latest
# 停止mysql容器
docker-compose stop mysql
# 刪除舊資料庫資料
rm -rf ~/.laradock/data/mysql
# !注意重啟docker應用,然後再構建新 mysql
docker-compose build mysql
# 重新建立容器
docker-compose up -d nginx mysql
# 檢視現有 mysql 版本
docker inspect laradock_mysql_1
執行 Laravel 專案
配置 nginx conf 檔案,複製 laradock 目錄下檔案
cp nginx/sites/laravel.conf.example laravel.conf
然後修改 laravel.conf 檔案,修改 server_name 和 root 目錄
server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name www.laravel.com laravel.com;
root /var/www/laravel/public;
index index.php index.html index.htm;
...
}
修改完成後儲存,重啟容器 nginx
docker-compose restart nginx
然後訪問 www.laravel.com
就可以看到專案執行,前提是該域名已經指向該伺服器 IP。
連線容器 mysql 以及 redis 注意事項,需要修改 laravel .env 配置檔案
DB_HOST=mysql
REDIS_HOST=redis
如果訪問失敗一般是如下情況
1.nginx 配置出錯
# 進入 nginx 容器
docker-compose exec nginx bash
# 執行測試命令
nginx -t
2.專案目錄許可權問題
chmod -R 775 storage/
本作品採用《CC 協議》,轉載必須註明作者和本文連結