Docker大法聽人說過,其神奇精妙,不可言;但其繁雜之設定,直教人望而卻步。咳咳,所以這裡分享如何快速設定Docker。
簡單來講,跟著這個轉: https://vessel.shippingdocker.com/docs/get-started/ , 如果你是用Linux……
Windows嘛,這個Package不支援,但是,我們有WSL啊,所以,步驟如下:
- 下載DOCKER CE的Win10版本,並安裝。
- 弄好WSL,參考 : https://learnku.com/articles/28774 , 只用保證 WSL在跑, Composer裝上了,就好了
2a. 或者,你像我一樣,喜歡Fedora/CentOS/RedHat (對的,WSL有Fedora和CentOS),辣麼,參考這個: https://learnku.com/articles/22235 (到第一步為止,剩下的不用做)
- 工作列, Docker那條抹香鯨,右鍵點選,設定這樣
- 設定,點Shared Drives,保證你的C盤打鉤
- 把設定關了。
- 安裝Docker-CE,
如果是Ubuntu,指示如下:
sudo apt-get update -y
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update -y
sudo apt-get install -y docker-ce
#安裝 Python 和 PIP.
sudo apt-get install -y python python-pip
#安裝 docker-compose
pip install --user docker-compose
Ubuntu記得,要把 $HOME/.local/bin
加入 PATH。
如果是Fedora,指示如下:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager \
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
# DOCKER更新很慢,所以如果是29+版本的,用29版本
sudo dnf install docker-ce docker-compose --releasever=29
如果是CentOS,指示如下:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 加 Epel
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install docker-ce docker-compose
- 設定DOCKER:
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc
sudo usermod -aG docker $USER
- 看看管用不?
docker info docker-compose --version
- 儲存設定: (某些時候Win10會崩潰,或者Terminal會崩潰,重啟就好了)
sudo nano /etc/wsl.conf #把下面這行加進去 [automount] root = / options = "metadata"
然後裝個假C盤
sudo mkdir /c sudo mount --bind /mnt/c /c #自動啟動 echo "sudo mount --bind /mnt/c /c" >> ~/.bashrc && source ~/.bashrc
Vessel可以在幾分鐘內,設定起來一個DOCKER Container給你用,而且是為Laravel設計的,所以不用怕程式碼和DOCKER不同步的問題。預設安裝包括: app, MySQL,Redis(本地開發必備,因為Vessel需要),Node
- 進入你的Laravel專案目錄內(興許其他PHP框架也能用?沒試過)
composer require shipping-docker/vessel
php artisan vendor:publish --provider="Vessel\VesselServiceProvider"
- 保證你的DOCKER是正常執行的情況,
bash vessel init
./vessel start
- 訪問
localhost
,應該就能看到你的專案了。 - 需要跑 artisan, yarn 什麼的,這麼跑:
./vessel artisan
,./vessel yarn
如果像我一樣,想要用Fedora的,把 我這個 打包下載來,丟進去 docker/app 目錄, 然後跑第五步。 我想測試看看Fedora跑的夠穩了,我再放CentOS上去(其實我自己伺服器跑的就是Fedora,沒覺得有問題)。Fedora對於PHP開發太方便了,直接是最新的PHP,Nginx什麼的,各種Extension齊全,phpunit,composer 這些是直接官方給的包。要把這些檔案改給CentOS也很方便。
需要MariaDB,而不是MySQL的,把docker-compose.yml
裡面換掉就好了。
如果需要推到生產環境中用,那你直接用docker-composer
即可,不需要依賴 vessel。而且Vessel除了對Redis有依賴外,其他的都還好。當然,生產環境中,這個Dockerfile 裡面的xdebug可以去掉了。 然後NGinx的設定,本人推薦: https://nginxconfig.io/ 。
Docker的好處就是放到那裡去都是一樣用,所以你這個設定,可以一直搬來搬去,但是執行環境卻不會改變。我在研究Kubernete,希望這個能用上?