安装docker
yum -y install docker
设置docker开机启动
systemctl enable docker
安装php mysql nginx
docker pull php-fpm
docker pull nginx
docker pull mysql:5.7
docker logs 容器名称-----查看容器日志情况
先要关闭防火墙
systemctl stop firewalld
创建mysql容器(删除容器 docker rm 容器id) --privileged=true 给容器加上特定权限 --restart=always开机启动容器
docker run --privileged=true --restart=always --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/conf.d:/etc/mysql/conf.d -d mysql:5.7
启动mysql容器
docker start docker-mysql
配置通过命令行连接mysql(-it在容器内产生伪终端交互,进入后不能用vim命令要在里面通过apt-get install vim安装)
docker exec -it docker-mysql /bin/bash
mysql -u root -p
创建php容器(--link和mysql容器关联)
docker run --privileged=true --restart=always --name docker-php -v /data/nginx/www/html:/var/www/html -p 9000:9000 --link docker-mysql -d php:7.0-fpm
进入容器内使用php命令
docker exec -it docker-php /bin/bash
安装php扩展
docker-php-ext-install mysqli
容器外使用php命令
docker exec docker-php /usr/local/bin/php -v
创建nginx容器
docker run --privileged=true --restart=always --name docker-nginx -v /data/nginx/www/html:/var/www/html -p 80:80 --link docker-php -d nginx:latest
进入nginx(默认配置文件/etc/nginx/nginx.conf)
docker exec -it docker-nginx /bin/bash
从docker容器复制nginx配置文件方便修改
docker cp docker-nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp docker-nginx:/etc/nginx/conf.d/default.conf /data/nginx/conf/default.conf
编辑/data/nginx/conf/default.conf文件
server {
listen 80;
server_name www.webtest.com;
location / {
root /var/www/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass docker-php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
导入配置文件到容器
docker cp /data/nginx/conf/default.conf docker-nginx:/etc/nginx/conf.d/default.conf
docker restart docker-nginx
在/data/nginx/www/html目录下创建一个php文件测试下应该可以成功
安装php的composer包管理工具
进入php容器
docker exec -it docker-php /bin/bash
cd /usr/local/bin
执行 curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
之后在php容器就可以使用composer命令了
docker上安装的php扩展默认只在cli模式下生效通过phpinfo查看并未在fpm模式下生效需要手动修改php.ini文件添加扩展
重命名下php.ini文件
mv /usr/local/php/etc/php.ini-production /usr/local/php/etc/php.ini
退出php容器
exit
docker cp docker-php:/usr/local/etc/php/php.ini /data/nginx/conf/php.ini
vim /data/nginx/conf/php.ini
docker cp /data/nginx/conf/php.ini docker-php:/usr/local/etc/php/php.ini
docker restart docker-php
之后扩展在fpm下就生效了
对已经创建的容器可以使用如下更新命令
docker update --restart=always 容器名称1 容器名称2
apt-get update&&apt-get install -y vim
更改docker镜像
1、cd /etc/docker/
2、touch daemon.json
3、chmod 777 daemon.json
4、vi daemon.json
添加 {"registry-mirrors": ["https://nsodgxr5.mirror.aliyuncs.com"]}
5、重启docker: systemctl daemon-reload systemctl restart docker