ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 命令快捷化 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/introduction/ 基本上涵盖了后端开发中需要使用的软件 https://laradock.io/introduction/#supported-software-images 这里以安装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。 ~~~bash # 进入容器 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-started/#installation ### 删除清理容器或者镜像 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/#phpstorm-settings ## 定义属于自己的docker-compose laradocker还是比较大,所以我们要针对自己的项目定义一个属于的docker项目。 我这里定义了一个后端的开发环境,可以参考: https://github.com/a5635268/docker_dev ## 参考 1. [go容器编排](https://github.com/flipped-aurora/gin-vue-admin/blob/master/docker-compose.yaml) 2.