命令快捷化
wget -P ~ https://github.com/a5635268/docker_dev/.bashrc_docker;
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
# 進入容器
docker-enter nginx
# 運行容器上命令
docker-enter nginx -- uptime
docker-enter nginx -- df -h
# 信息查看
docker-ip nginx
docker-pid nginx
[info] 具體的其他命令可以擴展源文件bashrc_docker
laradock
這裏以php開發環境爲例,大而全的有laradock
官網:https://laradock.io/introduct...
基本上涵蓋了後端開發中需要使用的軟件
https://laradock.io/introduct...
這裏以安裝lnmp套件爲例
git clone https://github.com/laradock/laradock.git
cp env-example .env
# env配置
# 配置文件中指定項目目錄
APP_CODE_PATH_HOST=../project-z/
# 配置安裝其他擴展
WORKSPACE_INSTALL_SWOOLE=true
# 配置php版本
PHP_VERSION=7.3
# 每個服務可以直接看目錄名
docker-compose up -d nginx mysql php redis
# 安裝完成後查看
docker-compose ps
# 進入容器,這裏的msyql是docker-compose裏面定義的容器名
docker-compose exec mysql bash
# 代碼編寫
# 查看env的NGINX_SITES_PATH獲得網站配置路徑(可以事先定義)
- 具體的掛載目錄可以查看docker-compose.yml
版本切換
以mysql爲例
# 修改 .env 文件
MYSQL_VERSION=5.7 # 默認爲 latest
#停止mysql容器
docker-compose stop mysql
# (可選)刪除舊數據庫數據,具體的可以看docker-compose.yml
rm -rf ~/.laradock/data/mysql
# !注意重啓docker應用,然後再構建新 mysql
docker-compose build --no-cache mysql
# 重新創建容器
docker-compose up -d mysql
# 查看現有 mysql 版本
docker inspect laradock_mysql_1 | grep MYSQL_VERSION
# 如果沒有啓動成功,就查看日誌對應這解決問題
docker start laradock_mysql_1
docker logs laradock_mysql_1
多版本共存
以mysql爲例,做主從配置
# 複製docker-compose.yml原來的mysql部分
### MySQL-slave ################################################
mysql-slave:
build:
context: ./mysql
args:
- MYSQL_VERSION=${MYSQL_VERSION}
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${WORKSPACE_TIMEZONE}
volumes:
- ${DATA_PATH_HOST}/mysql-slave:/var/lib/mysql
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports:
- "${MYSQL_SLAVE_PORT}:3306"
networks:
- backend
# env新增
MYSQL_SLAVE_PORT = 3307
Workspace容器
laradock使用了一個叫Workspace容器,來作爲所有項目的公共操作區。這個工作區容器,封裝了web開發的絕大多數命令行工具。你的項目只要在工作區目錄下,那麼可以公用這些命令行工具。目前,主要包括了php的composer ,laravel的artisan工具,還包括了nodejs的npm,vue-cli。還有一些工具是默認不安全,但是可以通過修改env開啓的,比如說swoole擴展,python的命令行工具,以及symfony。
# 進入容器
docker-compose exec workspace bash
# 切換用戶執行,比如composer用root的話就會有warnning
docker-compose exec --user=laradock workspace bash
# 配置ssh登錄
WORKSPACE_INSTALL_WORKSPACE_SSH = true
# 然後重新構建鏡像,使用 docker-compose build workspace,再啓動鏡像。
ssh -i workspace/insecure_id_rsa -p2222 root@laravel
[danger] 注意! workspace中的PHP版本雖然和php-fpm容器的版本一致,但是它們是兩個不同的PHP。 workspace中主要的是運行命令行用到。
具體參考: https://laradock.io/getting-s...
刪除清理容器或者鏡像
docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}
docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}
關於xdebug的phpstorm配置
https://laradock.io/guides/#p...
定義屬於自己的docker-compose
laradocker還是比較大,我們還是要針對自己的項目定義一個屬於的docker項目。
我這裏定義了一個後端的開發環境,可以參考: https://github.com/a5635268/d...