0.关闭防火墙、关闭selinux
[root@docker]#setenforce 0
[root@docker]#sed -ri ‘s/^(SELINUX=).*/\1disabled/g’ /etc/selinux/config
[root@docker]# systemctl stop firewalld
[root@docker]#systemctl disable firewalld //开机不启动防火墙
一.安装部署docker
[root@docker]#yum -y install docker
[root@docker]#systemctl start docker
[root@docker]#systemctl enable docker
二.下载镜像(根据需要的选择版本)
[root@docker]#docker pull nginx:1.12.2
[root@docker]#docker pull php:7.2.27
[root@docker]#docker pull mysql:5.7
三.编写sh文件创建容器
a.创建mysql
[root@docker]#vim docker_mysql.sh
#!/bin/bash
docker run -it -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /root/docker/mysql:/var/lib/mysql \
–name mysql mysql:5.7
参数说明:
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-e 设置环境变量,这里设置mysql的root用户的初始密码
-name 容器的名称、只要求唯一性
b.创建php
[root@docker]#vim docker_php.sh
#!/bin/bash
docker run -d -p 9000:9000 \
-v /root/docker/html:/var/www/html \
–link mysql:mysql \
–name php php:7.2.27-fpm
参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,主机上的/root/docker/html映射到容器里面 的/var/www/html,如果主机没有这个目录就创建这个目录,或者映射别的目录,但是后面路径要统一
–name 容器的名字
–link 容器与另外一个容器建立联系,这样就可以在当前的容器去使用另一个容器里的服务
c.创建nginx
[root@docker]#vim docker_nginx.sh
#!/bin/bash
docker run -d -p 80:80 –name nginx \
-v /root/docker/html:/usr/share/nginx/html \
-v /root/docker/conf:/etc/nginx \
-v /root/docker/conf.d:/etc/nginx/conf.d \
–link php:php \
–privileged=true nginx:1.12.2
四.修改nginx配置文件
修改Nginx 的配置文件,使他支持php
[root@docker]# docker cp 2a8e910b40db:/etc/nginx/conf.d/default.conf root/docker/conf.d #拷贝容器默认配置文件至本地路径
[root@docker]#vim /root/docker/conf.d/default.conf
server {
listen 80 default_server;
server_name localhost;
root /usr/share/nginx/html/;
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ \.php(.*)$ {
root /var/www/html/;
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
六.测试.
下载wordpress到本机,解压至html路径,测试效果
[root@docker]#wget https://wordpress.org/latest.tar.gz
[root@docker]#tar -zxf latest.tar.gz
[root@docker]#cp -r ~/wordpress/* /root/docker/html
浏览器访问测试效果