保姆式教程,話不多說直接上內容!
首先需要的是服務器或者是虛擬機,我這邊是ubuntu系統,
一、安裝docker
為了有權限進行操作先執行 : sudo su 之后輸入登錄密碼即可進入到root用戶
安裝命令:
apt-get install -y docker.io 或者 yum install docker
查看安裝是否成功(版本號):
docker -v 或者 docker --vesion

二、docker-compose安裝
安裝命令
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
授予權限:
chmod +x /usr/local/bin/docker-compose
查看否安裝成功及版本:
docker-compose --version

三、撰寫Dockerfile檔案
在專案根目錄下創建Dockerfile檔案
內容如下:
FROM java:8 //拉取java環境鏡像
EXPOSE 8877 //暴露專案埠號
ADD byl-service-1.0-SNAPSHOT.jar app.jar //復制一份jar包(byl-service-1.0-SNAPSHOT.jar 是自己專案打包的名稱)
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar","spring.profiles.active=dev"] //jar包啟動命令
四、撰寫docker-compose.yml檔案
在專案根目錄下創建docker-compose.yml檔案:

內容如下:
version: '3'
services:
nginx:
image: nginx:latest //nginx鏡像名稱及版本 latest為最近的
ports:
- 80:80 //主機埠號和容器埠號映射
volumes:
- /root/nginx/html:/usr/share/nginx/html //映射服務器和容器上的nginx檔案路徑,需要先創建往下看
- /root/nginx/nginx.conf:/etc/nginx/nginx.conf
privileged: true //開啟nginx檔案訪問權限
mysql:
image: mysql:5.7 //mysql鏡像名稱及版本 5.7版本
ports:
- 3306:3306 //埠號映射
environment:
- MYSQL_ROOT_PASSWORD=123456 //設定容器中mysql密碼
redis:
image: redis:latest
nyservice: //自己專案名字,自定
image: nyservice:latest
build: .
ports:
- 8877:8877 //專案埠號
depends_on:
- mysql
- redis
五、服務器上的檔案準備
1.專案的mysql、redis配置不再需要IP地址,直接用docker-compose.yml檔案下面配置的名字


2.前端專案請求后端介面的地址需要改成服務器的ip地址
localhost改成自己服務器的IP地址
3.打包專案放到服務器的根目錄下,我這邊用的xshell,可以直接把檔案拖過去
如果拖不過去,按照提示:apt-get install lrzsz 就可以往xshell里面拖入上傳了

4.因為前面撰寫docker-compose.yml檔案是nginx映射的檔案路徑是在/root 下 ,所以需要拖動專案打包好的jar包、Dockerfile檔案、docker-compose.yml檔案到/root路徑下

5.需要使用nginx掛載前端的代碼
在/root路徑下新建檔案夾: mkdir nginx
cd nginx
mkdir html //存放dist檔案夾下的檔案
touch nginx.conf //nginx 的組態檔
前端vue的代碼,使用命令: npm run build 打包后是有一個dist檔案夾,把dist檔案夾壓縮成zip檔案

進入到 cd nginx/html ,拖入dist.zip到這個檔案夾下
使用 unzip dist.zip 解壓檔案把解壓的檔案移到html檔案夾下
命令是: mv dist/* .
之后可以把dist檔案夾和安裝包刪掉了
命令是: rm -rf dist*
接下來查看html檔案夾下的內容:
完成!
然后是修改nginx目錄下的nginx.conf組態檔
命令是: vim nginx.conf
內容如下:
這就是nginx.conf的組態檔把所有注釋刪掉而已,加了兩行重要的代碼
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 1024m;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html; //docker-compose.yml檔案下配置的nginx的檔案映射
try_files $uri $uri/ /index.html last; //一定得加上
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

呼呼呼呼~~~~~~~~~~~~~~~~~~~~
馬上結束了!
一切準備就緒之后,執行命令: docker-compose up -d
程序會有一點慢,大家可以聽一首半島鐵盒等一等.......
two years later..............

出現上面的內容說明已經成功構建了,現在查看一下docker在運行中的鏡像

確實是成功了!
因為nginx的埠是80,所以直接輸入服務器的地址就能出現專案的首頁了

大功告成!
篇幅很長,請耐心跟著一步一步來!
后面看情況會出jenkins+docker 自動化部署專案!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/347290.html
標籤:其他
上一篇:使用阿里云ECS服務器再nginx服務下配置ssl證書
下一篇:性能優化-分庫分表
