Dockerfile打包部署詳細(xì)圖文教程
Dockerfile打包
先找到打包完的目錄下創(chuàng)建一個(gè)Dockerfile文件
touch Dockerfile
進(jìn)去文件內(nèi)編寫
vim Dockerfile
# 基礎(chǔ)鏡像
FROM openjdk:8
# author
MAINTAINER yxh
# 掛載目錄
VOLUME /home/project
# 創(chuàng)建目錄
RUN mkdir -p /home/project
# 指定路徑
WORKDIR /home/project
# 復(fù)制jar文件到路徑
COPY medical-gateway.jar /home/project/medical-gateway.jar
# 啟動(dòng)認(rèn)證服務(wù)
ENTRYPOINT ["java","-jar","/home/project/medical-gateway.jar"]
保存并退出
:wq!
構(gòu)建鏡像(my-task -> 取一個(gè)鏡像名字,構(gòu)建鏡像后面是有一個(gè)'.'的)
docker build -t my-task .
啟動(dòng)鏡像
docker run -d -p 18080:18080 --name task my-task
-d 容器在后臺(tái)運(yùn)行
-p 將宿主機(jī)的 8080 端口映射到容器的 8080 端口。
--name 取一個(gè)容器名
最后面的my-task指的是剛才打包的鏡像名
jar部署
判斷是否有openjdk有的話可以跳過
拉取openjdk鏡像 如果拉不下來就切換鏡像
docker pull openjdk
cd /usr mkdir project cd project
將jar包拖入目錄中
touch Dockerfile vim Dockerfile
# 基礎(chǔ)鏡像
FROM openjdk:8
# author
MAINTAINER yxh
# 掛載目錄
VOLUME /home/project
# 創(chuàng)建目錄
RUN mkdir -p /home/project
# 指定路徑
WORKDIR /home/project
# 復(fù)制jar文件到路徑
COPY medical-gateway.jar /home/project/medical-gateway.jar
# 啟動(dòng)認(rèn)證服務(wù)
ENTRYPOINT ["java","-jar","/home/project/medical-gateway.jar"]
保存并退出
:wq!
構(gòu)建鏡像
docker build -t my-gateway .
啟動(dòng)鏡像
docker run -d -p 18080:18080 --name gateway my-gateway
如果發(fā)現(xiàn)端口號(hào)被占用

netstat -anp |grep 18080//查看18080端口的占用情況
查看端口號(hào)占用進(jìn)程
lsof -i :18080
關(guān)閉進(jìn)程
kill -9 18080
再次啟動(dòng)鏡像
docker run -d -p 18080:18080 --name gateway my-gateway
nginx打包部署
我那vue舉例
先通過命令將前端工程打包
vue-cli-service build
打完包有個(gè)dist

現(xiàn)在去服務(wù)器上
cd /opt
創(chuàng)建nginx目錄
mkdir nginx cd nginx
把dist拉到該目錄下
先檢查一下是否有nginx鏡像
docker pull nginx
創(chuàng)建nginx配置
touch nginx.conf vim nginx.conf
server {
listen 80;
server_name your_name;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 處理API請(qǐng)求
location /prod-api/ {
#存放jar網(wǎng)關(guān)部署的服務(wù)器IP和端口號(hào)
proxy_pass http://IP:端口/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}保存并退出
:wq!
創(chuàng)建default.conf
touch default.conf
server {
listen 80;
server_name 124.70.138.156;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#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 html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}保存并退出
:wq!
在該目錄下創(chuàng)建Dockerfile
touch Dockerfile vim Dockerfile
# 使用nginx鏡像
FROM nginx
# 作者
MAINTAINER yxh
# 刪除nginx 默認(rèn)配置
RUN rm /etc/nginx/conf.d/default.conf
# 添加我們自己的配置 default.conf 在下面
ADD default.conf /etc/nginx/conf.d/
# 把剛才生成dist文件夾下的文件copy到nginx下面去
COPY dist/ /usr/share/nginx/html/
保存并退出
:wq!
構(gòu)建鏡像
docker build -t my-vue-app .

啟動(dòng)鏡像
docker run -d -p 80:80 --name vue-app my-vue-app

快去訪問一下你的網(wǎng)站吧
總結(jié)
到此這篇關(guān)于Dockerfile打包部署的文章就介紹到這了,更多相關(guān)Dockerfile打包部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在docker容器中elasticsearch的導(dǎo)入導(dǎo)出方式
文章詳細(xì)介紹了如何使用Docker拉取Elasticsearch鏡像,并導(dǎo)出和導(dǎo)入索引數(shù)據(jù),還討論了在Elasticsearch?Head中解決請(qǐng)求頭顯示不正確的問題,包括從容器中復(fù)制文件、編輯文件和將文件回傳到容器2025-11-11
使用Docker安裝和配置 MySQL 數(shù)據(jù)庫的過程詳解
本文將介紹如何使用Docker來安裝和配置MySQL數(shù)據(jù)庫,以便在開發(fā)和測試環(huán)境中快速搭建MySQL實(shí)例,本文也是介紹兩種方式進(jìn)行分別是“使用鏡像安裝”、“使用Docker Compose安裝”,感興趣的朋友一起看看吧2023-12-12

