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
這裏以php開發環境爲例,大而全的有laradockphp
官網:https://laradock.io/introduct...vue
基本上涵蓋了後端開發中須要使用的軟件node
https://laradock.io/introduct...python
這裏以安裝lnmp套件爲例mysql
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得到網站配置路徑(能夠事先定義)
以mysql爲例nginx
# 修改 .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爲例,作主從配置laravel
# 複製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
laradock使用了一個叫Workspace容器,來做爲全部項目的公共操做區。這個工做區容器,封裝了web開發的絕大多數命令行工具。你的項目只要在工做區目錄下,那麼能夠公用這些命令行工具。目前,主要包括了php的composer ,laravel的artisan工具,還包括了nodejs的npm,vue-cli。還有一些工具是默認不安全,可是能夠經過修改env開啓的,好比說swoole擴展,python的命令行工具,以及symfony。git
# 進入容器 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...github
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 {}
https://laradock.io/guides/#p...web
laradocker仍是比較大,咱們仍是要針對本身的項目定義一個屬於的docker項目。
我這裏定義了一個後端的開發環境,能夠參考: https://github.com/a5635268/d...