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開發(fā)python Web 應(yīng)用
本文給大家詳細(xì)講解了如何使用Docker開發(fā)python應(yīng)用,特別是WEB應(yīng)用的步驟,Docker本質(zhì)上提供了非常輕量化的VMs,我們可以使用其創(chuàng)建一個(gè)高標(biāo)準(zhǔn)隔離并能大大減少失配的開發(fā)和產(chǎn)品環(huán)境。2016-10-10Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關(guān)于Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的詳細(xì)過程
本文給大家介紹Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的相關(guān)知識(shí),通過示例給大家詳細(xì)介紹創(chuàng)建一個(gè)nodejs程序的docker鏡像的方法,需要的朋友跟隨小編一起看看吧2021-06-06解決Docker容器時(shí)區(qū)及時(shí)間不同步問題的方法
這篇文章主要介紹了解決Docker容器時(shí)區(qū)及時(shí)間不同步問題的方法,有效的解決了Docker容器時(shí)間同步問題,有興趣的可以了解一下。2016-12-12把數(shù)據(jù)庫部署在docker容器內(nèi)有哪些缺陷
這篇文章主要介紹了把數(shù)據(jù)庫部署在docker容器內(nèi)有哪些缺陷,幫助大家更好的理解和學(xué)習(xí)docker容器和數(shù)據(jù)庫,感興趣的朋友可以了解下2020-08-08Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹
這篇文章主要介紹了 Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹的相關(guān)資料,這里對(duì)Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器的感念及相關(guān)操作進(jìn)行了介紹,需要的朋友可以參考下2016-11-11通過docker 部署minio的方法(端口號(hào)為9105)
通過Docker部署MinIO對(duì)象存儲(chǔ)服務(wù),并指定API端口為9105,下面給大家分享實(shí)現(xiàn)步驟,感興趣的朋友一起看看吧2024-12-12詳解如何獲取docker容器(container)的ip地址
這篇文章主要介紹了詳解如何獲取docker容器(container)的ip地址,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09