共计 2653 个字符,预计需要花费 7 分钟才能阅读完成。
命令快捷化
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…
正文完
发表至:无分类
2019-08-11