docker灵活的构建PHP环境的实现

2020-06-17 07:17:59易采站长站整理

快捷脚本来启用扩展


pecl install redis && docker-php-ext-enable redis

docker restart myphp
装完扩展 退出容器 重启容器

* 其它命令

docker stop $(docker ps -q) 停止所有容器

docker rm $(docker ps -aq) 删除所有容器

docker rmi $(docker images -q) 删除所有镜像

docker inspect myphp 查看容器配置信息

* 构筑自己的目录结构

你也可以构建自己所要的server目录结构 首先要知道挂载一个空文件夹会清空容器中文件夹下所有内容 所以应该先拷贝再挂载
例如: 创建一个临时容器 sudo docker run –name mynginx -p 80:80 -it -d nginx
进入到容器中查自己所要的配置文件目录地址 例如: /etc/nginx 退出容器
拷贝容器中所要的目录结构到宿主机 例如: docker cp mydb:/etc/nginx /server/nginx
删除容器 创建新容器时就可以挂载该目录了 此后对nginx的配置文件的修改就可以直接在宿主机上快捷操作
docker run –name mynginx -d -p 80:80 -v /server/nginx:/etc/nginx –link myphp:myphp –privileged=true  nginx

(二阶) docker-compose 自动化构建

完成以上步骤你就已经初步了解了docker的基本容器操作
docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,
那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,
相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动
这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了

1. 安装 docker-compose


curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version

2. 一键部署环境

/server/compose/docker-compose.yml已经配置好了 直接输入命令即可


cd /server/compose

docker-compose up -d


version:"2"
sevices:
mydb:
container_name:"mydb"
ports:
- "3306:3306"
volumes: #挂载的目录写在这里
- /server/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime:re #设置容器和宿主机的时间同步
environment: # 自定义环境变量
MYSQL_ROOT_PASSWORD:123456
images:mysql: 8.0 # 容器引用镜像
myredis:
container_name:"myredis"
restart:always