Linux下使用docker部署前後分離netcore webapi項目、前端vue頁面、Mysql、Redis、SQLite
Linux下使用docker部署netcore(一)
Linux下使用docker部署Mysql(二)
Linux下使用docker部署Redis(三)
Linux下使用docker部署發佈後的netcore(四)
Linux下使用docker部署VUE(五)
Linux下使用docker創建nginx圖片服務器(六)
說明
這篇文章是爲了記錄公司的項目部署過程,方便給其他運維人員查閱,我對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
出現以上情況,我們可以看一下效果了。
就這樣,有問題留言,只要我看到並且我瞭解的一定回覆!