Linux下使用docker部署前后分离netcore webapi项目、前端vue页面、Mysql、Redis、SQLite
说明
这篇文章是为了记录公司的项目部署过程,方便给其他运维人员查阅,我对linux的详细操作谈不上非常精通,如果只是想了解实战项目的部署流程可以查看这篇文章。本文介绍了linux下使用docker的基本操作、使用docker部署netcore webapi项目、vue项目、Mysql、Redis、SQLite。我们先是一步一步部署,之后会采用docker-compose一步生成多种环境。 本人能力有限,底层的东西讲不清楚,但是会把遇到的问题的解决办法分享出来供大家查阅。废话不多说,直接整。
需要的文件
- 自己准备的图片文件夹
- Dockerfile文件
- default.conf
文件详情
Dockerfile
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
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 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
我们可以看到我们的文件都挂载到容器内部了,并且我们查看一下nginx是否映射的当前地址:
cd /etc/nginx/conf.d/
vi default.conf
补充问题
如果出现vi命令无效,则说明需要安装一下,因为每一个docker容器都可以看做是一个新的独立的linux系统,所以我们需要在这个新的小linux系统安装vim或其他配件。
apt-get update
apt-get install vim
出现以上情况,我们可以看一下效果了。
就这样,有问题留言,只要我看到并且我了解的一定回复!