Docker安装nginx部署vue项目,并移植到其他服务器

初学Docker,所以特意记录下使用过程,文中有错误之处望指出。

一、本文目的

       在有网络的情况下centos上安装nginx比较方便,但有时生产环境不允许连接外部网络或者进行网络限制。所以只能在开发环境中先将nginx的容器打包成镜像文件然后移植到生产环境。

二、开发环境安装Nginx

1、查找 Docker Hub 上的 nginx 镜像

[root@localhost ~]# docker search nginx

2、拉取官方的Nginx镜像

[root@localhost ~]# docker pull nginx

3、在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像

[root@localhost ~]# docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              f949e7d76d63        5 weeks ago         126 MB

4、以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例,有一串数字出来即表示容器启动成功

[root@localhost ~]# docker run --rm --name nginx-test -p 8080:80 -d nginx
3583******edbb3e4b

其中,该命令的四个命令行参数的含义如下。
      --rm:容器终止运行后,自动删除容器文件。
      --name nginx-test:容器的名字叫做nginx-test,名字自己定义.
      -p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
      -d:容器启动后,在后台运行5、使用docker ps -a 可以查询启动的容器

还有更多参数可以查询官网。

[root~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
25c9c0501d4a        nginx               "/docker-entrypoint.…"   2 days ago          Up 2 days           0.0.0.0:80->80/tcp   my-nginx

至此nginx安装完成,在浏览器通过ip:8080即可出现nginx的欢迎界面。

三、部署vue项目

1、创建相应文件夹及文件

在/home目录下新建一个nginx文件夹,这个文件夹名称可随意创建。在/home/nginx文件夹下创建四个文件夹用来存放配置文件和vue项目编译好的文件。

mkdir -p  conf  conf.d logs www 

conf:存放nginx.conf文件 

conf.d 存放default.conf文件,这个文件为什么要用? 因为在nginx默认的nginx.conf文件中有一行是引入配置的:

include /etc/nginx/conf.d/*.conf;  

logs:日志目录

www:vue项目的目录

[root@iZwz9hqzehulzxw6rw3ktsZ nginx]# ls -R
.:
conf  conf.d  logs  www

./conf:
nginx.conf

./conf.d:
default.conf

./logs:
access.log  error.log

./www:
index.html  static

2、创建容器

  docker run --rm -d -p 80:80 --net=host --name my-nginx \
  -v /home/nginx/www:/usr/share/nginx/html/ \
  -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v /home/nginx/conf.d:/etc/nginx/conf.d \
  -v /home/nginx/logs:/var/log/nginx \
  nginx

具体说明:

(1)第一个“-v”,是项目位置,把项目放到挂载到的目录下即可;

(2)第二个“-v”,是挂载的主配置文件"nginx.conf",注意"nginx.conf"文件内有一行"include /etc/nginx/conf.d/*.conf;",这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不要出错。

(3)第三个“-v”,把docker内子配置文件的路径也挂载了出来,注意要与(2)中include指向路径一致,重点强调一下,nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录

(4)第四个“-v”,是日志位置;

执行完毕后再检查下容器是否正常启动。我第一步安装nginx步骤过程的容器已经删除了。所以我现在只有一个nginx容器

四、打包成镜像并移植到其他服务器

我这里是先把nginx镜像先打包,然后把配置文件打包,然后放在另外的服务器再重新创建容器的。也可以直接把容器打包成镜像直接部署,我这里就不写了。

1、打包nginx镜像,将镜像保存为本地文件,其中08393e824c32为image id

[root]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              08393e824c32        10 days ago         132MB

[root]# docker save 08393e824c32> ./my-nginx-image.tar

2、将打包好后的tar文件拷贝到生产服务器。

3、在生产环境的服务器上使用load方法加载刚才上传的tar文件

docker load < /home/my-nginx-image.tar

在新的机器上再此使用docker images命令查看本机的镜像,检查刚才load的镜像有没有加载进来,发现加载进来的镜像名称、标签均为none,使用docker tag 08393e824c32 nginx:latest 修改为原来的镜像名称和标签名称,其中08393e824c32为images id

4、然后可以将开发环境已经设置好的配置文件和vue项目文件都打包拷贝到生产服务器重新启动一个容器即可。

五、容器启动相关命令

coker images #列出所有镜像
docker ps -aq #列出所有容器 ID
docker start 容器ID #启动
docker stop 容器ID #暂停
docker restart 容器ID #重启
docker rm 容器ID #移除
docker stop $(docker ps -aq) #停止所有容器
docker rm $(docker ps -aq) #删除所有容器
docker rmi $(docker images -q) #删除所有的镜像

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值