Linux下使用docker部署前后分离netcore webapi项目、前端vue页面、Mysql、Redis、SQLite

说明

这篇文章是为了记录公司的项目部署过程,方便给其他运维人员查阅,我对linux的详细操作谈不上非常精通,如果只是想了解实战项目的部署流程可以查看这篇文章。本文介绍了linux下使用docker的基本操作、使用docker部署netcore webapi项目、vue项目、Mysql、Redis、SQLite。我们先是一步一步部署,之后会采用docker-compose一步生成多种环境。 本人能力有限,底层的东西讲不清楚,但是会把遇到的问题的解决办法分享出来供大家查阅。废话不多说,直接整。

需要的文件

  • 自己准备的图片文件夹
  • Dockerfile文件
  • default.conf

文件详情

Dockerfile

docker 图片传输 docker 图片服务器_html

FROM nginx

MAINTAINER username
COPY default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

COPY下的第一个文件是找到你的default.conf 复制到你的容器里的/etc/nginx/conf.d/default.conf下

default.conf

docker 图片传输 docker 图片服务器_运维_02

server {
    listen       80;
    server_name  localhost;

    #(5)
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    
    location / {
        root  /home/images; #(1)
        autoindex on; #(2)
        autoindex_exact_size off; #(3)
        autoindex_localtime on; #(4)
        charset utf-8,gbk; #(5)
    }

    #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   /usr/share/nginx/html;
    }
}

参数说明:
(1):添加图片目录映射,映射目录为/home/images
(2):在Nginx下默认是不允许列出整个目录的。如需此功能,将该项设置为on
(3):默认为on,显示出文件的确切大小,单位是bytes
    改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
(4):默认为off,显示的文件时间为GMT时间
    注意:改为on后,显示的文件时间为文件的服务器时间
(5):设置编码(防止中文乱码),可以设置对全局生效或者部分路径生效

生成镜像

docker build -f Dockerfile -t image:v1 .

docker 图片传输 docker 图片服务器_docker 图片传输_03


运行容器

docker run -d --name image -p 8089:80 -v ~/datavisual2/PublishDocker/wwwroot/UploadFile:/home/images image:v1

我们可以进入到容器内部查看图片是否挂载到容器内部

docker exec -it image bash
cd home/images/
ls

docker 图片传输 docker 图片服务器_html_04


我们可以看到我们的文件都挂载到容器内部了,并且我们查看一下nginx是否映射的当前地址:

cd /etc/nginx/conf.d/
vi default.conf

docker 图片传输 docker 图片服务器_运维_05


补充问题

如果出现vi命令无效,则说明需要安装一下,因为每一个docker容器都可以看做是一个新的独立的linux系统,所以我们需要在这个新的小linux系统安装vim或其他配件。

apt-get update
apt-get install vim

出现以上情况,我们可以看一下效果了。

docker 图片传输 docker 图片服务器_docker 图片传输_06

就这样,有问题留言,只要我看到并且我了解的一定回复!