背景:在给客户交接项目的时候,对方要求在他们服务器上用docker部署应用程序
首先是一脸懵逼 [・_・?] 。。。搞咩呀!¥@#…………&*&&%……¥
好了抱怨完了,进入正题 正题 正题。
关于docker是什么?以后有空再写详细点,这篇文章主要是速战速决!
(还是想啰嗦点,个人理解docker就是一个容器,跟linux服务器一样,是一个容器。如果linux中你想运行一个项目,要配置相应的环境,但如果第二个项目所需的环境跟这个环境冲突了,就不好办了。这个时候用docker部署,把linux这个大的容器划分为几个小的docker容器,在docker容器里配置相对应的环境,避免冲突。纯属个人理解,如果不对还请不吝指教)
在linux服务器上安装docker(图有空再补上)
yum -y install docker
启动docker
systemctl start docker
查看docker状态
systemctl status docker
拉取镜像
docker pull skiychan/nginx-php7
然后用这个启动容器
docker run --name nginx --restart=always -p 80:80 -p 443:443 \
-v /var/www/wwwroot:/data/wwwroot \
-v /var/www/wwwlogs:/data/wwwlogs \
-v /var/www/vhost:/data/server/nginx/vhost \
-v /var/www/php/ini:/data/server/php/ini \
-v /var/www/php/ext:/data/server/php/extension \
-d skiychan/nginx-php7
冒号前面的路径就是映射到你磁盘上的路径(就是你想把这些文件放在你们服务器上的什么路径 你就改成那样)
docker ps 可以看到启动 好的容器
控制台 安全组需要添加规则 放行下80端口
这个目录下放一个nginx的虚拟主机配置文件
先放个简单的配置文件
server {
listen 80;
server_name aliyun.com;
root /data/wwwroot/aliyun.com;
index index.php index.html index.htm;
access_log /data/wwwlogs/access_aliyun.com.log;
error_log /data/wwwlogs/error_aliyun.com.log;
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root html;
# }
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
里面的aliyun.com 换成你的域名
docker restart nginx 重启下容器
在wwwroot目录下建立yuming.cn 就是站点的根目录
server_name www.yuming.cn yuming.cn
docker 服务重启,不是容器
服务重启命令 systemctl restart docker
到这里,运气好的话,可以了,如果不行,就一步步排查...
你先服务器上看看内部防火墙状态
service iptables status
service firewalld status
测试端口状态是否被过滤掉的
你再netstat -lntp | grep 80
然后 curl 127.0.0.1
docker 服务重启,不是容器
服务重启命令 systemctl restart docker
把nginx重写规则的配置 加到服务器上的配置文件里
抄过去替换
docker restart nginx 重启容器
有些着急,以后再细化