Docker项目部署

作者趁着五一尝试使用swoole更新一下之前的毕业项目,这里稍作记录

之前尝试在云服务器上使用Nginx的vhost做请求转发,配合修改本地host文件做DNS的映射,发现host添加的域名很快会失效,不得不找到其他的方法来进行开发

  • Nginx基于端口的vhost
  • 项目部署到docker中
  • 购买合法域名

由于作者十分贫穷,只能舍弃第三种方法。这里就第二种方式进行尝试和记录

Docker容器构建

构建一个存放项目的docker容器,docker容器的选择和组合有多种方式

  • 为nginx、php、mysql单独构建容器,然后使用共享卷volume 的方式共享数据
  • 在一个容器内构建nginx、php、mysql,一次性搞定

这里我选择的是第二种方式,只构建一个具备项目运行全部所需软件的docker容器

下面进行容器构建的讲解

搜索合适的Docker镜像

到docker hub 搜索lnmp,找到一个合适的镜像,个人推荐下面这个镜像
在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ykgAUhOq-1589266053479)(https://s1.ax1x.com/2020/05/11/YGkU29.png)]
dockerHub镜像地址

# 镜像拉取
docker pull 2233466866/lnmp
# 查看镜像
docker images ps

当然,如果嫌慢的话可以像我一样,到github上拉取项目,直接基于DockerFile进行镜像构建

# 拉取githup项目
git clone https://github.com/2233466866/lnmp.git
# 进入项目目录
cd ./lnmp
# 进行镜像构建
docker build -t lnmp .
# 查看镜像
docker images ps

Docker容器构建

在Docker Hub中也有详细的介绍,可以根据自己的实际情况进行调整和修改

这里的内容会对docker的命令使用有些要求,有不懂的请自行百度或留言

docker run -itd \
# -p参数进行端口映射,格式 -p 宿主机端口:docker端口
-p 8080:8080 \
-p 443:443 \
-p 3306:3306 \
# -v 宿主机目录挂载到容器,格式 -v 宿主机目录:容器目录
-v /sys/fs/cgroup/:/sys/fs/cgroup:ro \
-v /var/www:/www \
-v /usr/local/nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf \
-v /usr/local/mysql/data:/data/mysql \
# 使docker容器拥有root权限
--privileged=true \
--name=lnmp lnmp

# 启动、进入容器内部
docker exec -it lnmp /bin/bash


# 查看服务(容器内)
ps -aux | grep nginx
ps -aux | grep mysqld
ps -aux | grep php-fpm

ps: 上面的docker命令中的 -p 参数 和 -v参数也有注释了,看自己需要自行替换

项目部署

docker容器已经成功启动,基于之前docker容器-v参数指定,自行进行一些必要的参数配置和项目代码的部署

#容器中配置文件的路径(Config file path)
# Nginx
/usr/local/nginx/conf/nginx.conf
# MySQL
/etc/my.cnf
# PHP
/usr/local/php7/lib/php.ini
/usr/local/php7/etc/php-fpm.conf
/usr/local/php7/etc/php-fpm.d/www.conf

测试项目

此时项目已然运行在docker容器内,且由于把宿主机的端口映射到docker容器,只需要修改本地的host文件,就可以使用在不够买域名的情况下使用域名进行开发和测试

在这里插入图片描述

在这里插入图片描述

后记

项目部署时,作者也向此docker镜像的作者提了许多问题,他也很耐心得一一解答,在此感谢小鹿大大

最后宣传一下docker交流学习qq群,821635552

YtIB4K.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值