资讯专栏INFORMATION COLUMN

docker nginx 部署多个项目

netmou / 655人阅读

摘要:前提条件本地电脑和服务器已安装,下载方法自行谷歌吧在上已有账号,注册传送门需要对已有所熟悉,并了解里的一些指令使用制作镜像假如本机有一个叫的项目在根目录下新建,写入以下内容此时里的文件结构为为项目打包后的文件接下来在进入到目录

前提条件

1、本地电脑和服务器已安装 docker,下载方法自行谷歌吧

2、在 docker hub 上已有账号, 注册传送门: https://hub.docker.com/

3、需要对 docker 已有所熟悉 ,并了解Dockerfile里的一些指令

使用Dockerfile 制作镜像

假如本机有一个叫web的项目

在web根目录下新建Dockerfile,写入以下内容

FROM nginx:1.13.6-alpine
LABEL maintainer="lilywang "

ARG TZ="Asia/Shanghai"

ENV TZ ${TZ}

RUN apk upgrade --update 
    && apk add bash tzdata 
    && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime 
    && echo ${TZ} > /etc/timezone 
    && rm -rf /var/cache/apk/*

COPY dist /usr/share/nginx/html 

CMD ["nginx", "-g", "daemon off;"]

此时web里的文件结构为:

.
|____Dockerfile
|____dist // 为项目打包后的文件
| |____index.html

接下来在bash 进入到web目录

cd web

docker build -t lilywang711/web .
请把lilywang711替换成你的 docker hub 的用户名,web 是项目名称
看到打印信息中有如下就说明镜像已经构建成功了

Successfully built 4c050212ce0d
Successfully tagged lilywang711/web:latest

也可以输入docker images 查看当前的镜像列表

接下来输入命令 docker push lilywang711/web 就可将刚才构建好的镜像上传到docker hub里面,方便等会儿我们在服务端拉取镜像

如果是有多个项目需要部署,那就按照以上步骤重复来就行,有多少个项目就构建多少个镜像

服务端部署

ssh 登陆服务器,在当前用户目录下(我是root目录),新建 nginx 文件夹,并在里面新建nginx.conf
在 nginx.conf 中写入以下内容

user nginx;
worker_processes  2;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    use epoll;
    worker_connections  2048;
}
http {
    include  /etc/nginx/mime.types;
    # include /etc/nginx/conf.d/*.conf;
    root /usr/share/nginx/html;
    index  index.html index.htm;
    server {
        listen 80;
        server_name  a.yourdomain.cn;
        location / {
        }
    }
    server {
        listen 80;
        server_name  b.yourdomain.cn;
        location / {
            proxy_pass http://your_vps_ip:81;
        }
    }
    server {
        listen 80;
        server_name  localhost;
        location / {
        }
    }
}

接下来

启动docker systemctl start docker

拉取刚才制作并上传好的两个镜像

docker pull lilywang711/web

docker pull lilywang711/web1

输入以下命令启动容器

docker run -itd --name web -p 80:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web
// -i 交互模式运行容器, -t 为容器分配一个伪终端,-d 后台运行容器,可直接连写 -itd
// --name 是给该容器起个叫web的名字,方便辨识
// -p 是绑定端口 本机端口80:容器端口80
// -v 声明volume,意思是将容器中的/etc/nginx/nginx.conf 挂载到 宿主机里的/root/nginx/nginx.conf,以后配置nginx只需要修改/root/nginx/nginx.conf就行了

另外一个lilywang711/web1镜像也同理,修改下端口和名字就好了

docker run -itd --name web1 -p 81:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web1

此时输入 docker ps 就可以看到这两个容器已经跑起来了

docker化项目并在nginx部署就已经完成了

在浏览器输入 http://a.yourdomain.cn 和 http://b.yourdomain.cn 就可以看到效果了,分别对应本地电脑中的web 和 web1 项目

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27590.html

相关文章

  • Ant Design Pro 的 Docker 部署方式

    摘要:在使用的过程中,可以发现它提供了一系列基于的开发部署方式,如下图。我们可以通过分别启动单个镜像,并把镜像绑定到本地对应端口的形式进行部署,达到容器可通信的目的。但是为了更方便的管理多容器的情况,官方提供了的方式。 背景 Ant Design Pro是一个企业级中后台解决方案,在Ant Design组件库的基础上,提炼出典型模板/业务组件/通用页等,在此基础上能够使开发者快速的完成中后台...

    wemallshop 评论0 收藏0
  • [手把手系列之]Docker 部署 vue 项目

    摘要:部署项目写在前面作为轻量级虚拟化技术,拥有持续集成版本控制可移植性隔离性和安全性等优势。容器可以被创建启动停止删除暂停等。重新运行应用容器直接基于镜像来启动容器,运行命令将宿主机的挂载到容器的目录上。Docker 部署 vue 项目 1.写在前面: Docker 作为轻量级虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优势。本文使用Docker来部署一个vue的前端应用,并尽...

    VPointer 评论0 收藏0
  • Node项目的Gitlab自动部署实践(基于Docker

    摘要:只要的项目有提交,相关就根据来决定是否跑自动部署的命令。项目的自动部署添加执行的注册命令,按照说明进行参数配置。至此,和服务都已经自动部署完成。 准备工作 说明 公司最近准备了一台新的开发服务器,正好用以实践docker的基本应用。docker的好处不再赘述,详情可参考阮一峰的这篇入门。(关于Docker最好的中文介绍,没有之一)。 公司目前主要使用了EggJs + ReactJS的技...

    oysun 评论0 收藏0
  • 联调环境快速部署——基于docker-compose的CI/CD实践

    摘要:三部署架构说明这个方案仅适用于小公司敏捷项目团队联调测试环境的部署,同时也可以作为学习入门的,并不适用于有一定规模的生产环境。另外,建议把测试域名泛解析到部署这台服务的机器。模块配置部署脚本业务模块的配置基本是通过部署脚本来操作的。 项目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的开发测试环境,也可以扩展构建其...

    xiaokai 评论0 收藏0
  • 联调环境快速部署——基于docker-compose的CI/CD实践

    摘要:三部署架构说明这个方案仅适用于小公司敏捷项目团队联调测试环境的部署,同时也可以作为学习入门的,并不适用于有一定规模的生产环境。另外,建议把测试域名泛解析到部署这台服务的机器。模块配置部署脚本业务模块的配置基本是通过部署脚本来操作的。 项目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的开发测试环境,也可以扩展构建其...

    klinson 评论0 收藏0

发表评论

0条评论

netmou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<