因为安装过程中涉及到一些修改配置文件的步骤,由于刚尝试不太会,所以这里都是通过安装好后,进入容器修改配置,最后退出重启容器。
目录结构
docker
├── mysql
│ └── dockerfile
├── nginx
│ └── dockerfile
└── php7
└── dockerfile
分别生成3个镜像
sudo docker build -t lemon/mysql .
sudo docker build -t lemon/php .
sudo docker build -t lemon/nginx .
构建三个容器
需要注意的2个关键点
1.要用到link命令来连接个个容器
2.通过数据卷 使php-fpm和nginx的工作目录指向同一目录
$HOME/web:/usr/local/nginx/html
#设置root密码123456
sudo docker run --name mysql -d -p 3306:3306 -v $HOME/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 lemon/mysql
#以下关键命令 --link
#--link 连接mysql sudo docker run --name php -d -p 9000:9000 -v $HOME/web:/usr/local/nginx/html --link mysql:mysql lemon/php
#--link 连接php sudo docker run --name nginx -d -p 80:80 -v $HOME/web:/usr/local/nginx/html --link php:php lemon/nginx
进入nginx容器
sudo docker exec -it nginx bash
修改conf文件
location ~ .php$ { root html; #关键 - php容器的9000端口 fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
进入php容器
sudo docker exec -it php bash
分别修改www.conf
#监听所有9000端口 listen = 127.0.0.1 改为 listen = [::]:9000
修改php.ini
#增加swoole extension = swoole.so #增加opcache配置 [Zend Opcache] zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/opcache.so opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=528 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=0 opcache.fast_shutdown=1
退出容器,重启即可
sudo docker restart nginx sudo docker restart php
在$HOME/web 目录下新增 php文件, 通过 127.0.0.1/inde.php 可以成功访问。
dockerfile 文件:http://files.cnblogs.com/files/loveyouyou616/docker.tar.gz