欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker項目部署的教程(Vue+Spingboot)

 更新時間:2025年04月28日 14:45:41   作者:我自飛揚臨天下  
這篇文章主要介紹了docker項目部署的教程(Vue+Spingboot),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1.docker安裝(Ubuntu)

卸載原有的docker引擎和舊版本軟件包(第一次使用跳過)

# 卸載 Docker Engine、CLI、containerd 和 Docker Compose 軟件包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 主機上的映像、容器、卷或自定義配置文件 不會自動刪除。要刪除所有鏡像、容器和卷,請執(zhí)行以下操作:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# 刪除源列表和密鑰環(huán)
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc

# 卸載舊版本
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

使用存儲庫安裝apt

#1.設(shè)置 Docker 的存儲庫(一行一行執(zhí)行)

sudo apt-get update

sudo apt-get install ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update

# 2.安裝 Docker 軟件包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 3.啟動docker 
systemctl start docker

# 4.查看是否運行,該命令為查看鏡像
docker images

2.安裝nginx并運行

# 拉取nginx鏡像
docker pull nginx

# 創(chuàng)建nginx容器并且運行,
# -p 做宿主機與容器端口的映射
# -v 做數(shù)據(jù)掛載
# 注意(-v)后面(:)前面的html目錄和nginx.conf文件需要自己創(chuàng)建
# (:)后面是固定的docker nginx容器目錄
docker run -d\
  --name nginxR\
  -p 18080:18080\
  -p 18081:18081\
  -v /root/nginx/html:/usr/share/nginx/html\
  -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf\
  nginx

注:

nginx.conf配置文件指定的前端目錄所在位置要與容器內(nèi)的位置相對于,不要直接寫相對于宿主機的位置,否則服務(wù)器訪問不到

3.安裝Mysql

# 拉取mysql鏡像
docker pull mysql

# 創(chuàng)建mysql容器并且運行,這里同樣也要做數(shù)據(jù)掛載
# -v 做數(shù)據(jù)目錄、初始化腳本(自己在該目錄放置sql)、和配置文件(字符格式等配置)的掛載,
# 同樣也要自己創(chuàng)建文件目錄
docker run -d\
  --name mysql1.0\
  -p 3306:3306\
  -e TZ=Asia/Shanghai\
  -e MYSQL_ROOT_PASSWORD=root1234\
  -v /root/mysql/data:/var/lib/mysql\
  -v /root/mysql/init:/docker-entrypoint-initdb.d\
  -v /root/mysql/conf:/etc/mysql/conf.d\
  mysql

之所以做數(shù)據(jù)掛載就是防止容器出現(xiàn)問題掛掉,那么數(shù)據(jù)也隨之消失,掛載到宿主機,即使容器掛掉,在創(chuàng)建新容器也能保持原有的數(shù)據(jù)

注意:實際開發(fā)環(huán)境中3306端口不對外暴露,容器內(nèi)自定義網(wǎng)絡(luò)互相訪問

4.構(gòu)建jdk鏡像

準備條件(3樣?xùn)|西)

  • 一份 jdk.tar.gz 包
  • 一份自己的 java項目jar 包
  • 一份編寫好的 Dockerfile 文件

拉取ubuntu鏡像

docker pull ubuntu:24.04

Dockerfile

# 指定基礎(chǔ)鏡像
FROM ubuntu:24.04

#配置環(huán)境變量指定到容器內(nèi)的目錄(通過通過這個環(huán)境變量來引用/usr/local這個路徑)
ENV JAVA_URL=/usr/local

# 拷貝jdk到容器內(nèi)
COPY ./jdk17.tar.gz $JAVA_URL
#拷貝自己的項目的jar包到容器內(nèi)
COPY musicservice-0.0.1-SNAPSHOT.jar /app.jar

#進入到下載了jdk的目錄把他解壓縮重命名java17
RUN cd $JAVA_URL && tar -zxf ./jdk17.tar.gz

#配置jdk環(huán)境變量,何在本地配置環(huán)境變量是一致的
ENV JAVA_HOME=$JAVA_URL/jdk17
#添加到系統(tǒng)搜索路徑
ENV PATH=$PATH:$JAVA_HOME/bin

# 入口,java項目的啟動命令
ENTRYPOINT ["java","-jar","/app.jar"]

注意:

16行的jdk17一定要與jdk17.tar.gz解壓出來的文件名一致

不然報錯:

executable file not found in $PATH: unknown.

Dockerfile簡潔版

ubuntu、jdk、jar 三者構(gòu)成springboot基本運行環(huán)境

FROM ubuntu:24.04

COPY jdk17.tar.gz /usr/local
COPY my.jar /app.jar

RUN cd /usr/local && tar -xf jdk17.tar.gz && rm jdk17.tar.gz && apt-get update && apt-get install -y iputils-ping

ENV PATH=/usr/local/jdk-17.0.12/bin:$PATH

ENTRYPOINT ["java","-jar","/app.jar"]

這里RUN多加了一個ping工具

構(gòu)建java鏡像

# 構(gòu)建java鏡像
docker build -t javajar .

# 注意:末尾的點不要忽略了,javajar是自定義鏡像名

創(chuàng)建并運行java容器

docker run -d --name javajar1.0 -p 8888:8888 javajar

5.網(wǎng)絡(luò)配置

docker容器都是相互隔離的,要將三部分加入同一個網(wǎng)絡(luò),就能互相訪問了

自定義網(wǎng)絡(luò)

docker network create mynet

加入網(wǎng)絡(luò)

docker network connect mynet nginx1.0
docker network connect mynet mysql1.0
docker network connect mynet javajar1.0

ping命令

# 如果需要進入到容器內(nèi)部檢查連通性,就需要ping
docker exec -it javajar1.0 bash
# docker中是沒有ping命令的,需要自己安裝
apt-get update
apt-get install iputils-ping

6.注意事項

由于通過自定義網(wǎng)絡(luò)后就可以通過容器名訪問

我們springboot后端訪問數(shù)據(jù)庫直接用容器名訪問即可

**解決:**

為了解決mysql容器ip發(fā)生變化而訪問不了的問題,javajar是容器名。

nginx代理訪問后端也用容器名訪問即可

示例:

proxy_pass http://javajar:8888

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker使用run命令部署Redis的完整指南

    Docker使用run命令部署Redis的完整指南

    Redis作為當(dāng)今最流行的內(nèi)存數(shù)據(jù)庫和緩存解決方案之一,與 Docker 容器技術(shù)的結(jié)合為開發(fā)者提供了極致的部署靈活性和環(huán)境一致性,下面我們來看看如何使用run命令部署Redis吧
    2025-03-03
  • 解決docker拉取mysql鏡像太慢的情況

    解決docker拉取mysql鏡像太慢的情況

    這篇文章主要介紹了解決docker拉取mysql鏡像太慢的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker安裝wordpress并配置數(shù)據(jù)庫超詳細介紹版

    Docker安裝wordpress并配置數(shù)據(jù)庫超詳細介紹版

    安裝WordPress是一項常見的任務(wù),使用Docker可以使這個過程更加簡單和可靠,下面這篇文章主要給大家介紹了關(guān)于Docker安裝wordpress并配置數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Docker搭建MySQL雙主復(fù)制詳細教程

    Docker搭建MySQL雙主復(fù)制詳細教程

    Docker MySQL 雙主復(fù)制是一種數(shù)據(jù)庫高可用和數(shù)據(jù)冗余的技術(shù),它利用 Docker 容器化的優(yōu)勢,在兩個或多臺MySQL服務(wù)器上同時運行并維護數(shù)據(jù)庫副本,這兩個主服務(wù)器可以互相同步數(shù)據(jù)更新,本文給大家介紹了Docker搭建MySQL雙主復(fù)制詳細教程,需要的朋友可以參考下
    2024-07-07
  • Docker搭建代碼檢測平臺SonarQube并檢測maven項目的流程

    Docker搭建代碼檢測平臺SonarQube并檢測maven項目的流程

    這篇文章主要介紹了Docker搭建代碼檢測平臺SonarQube并檢測maven項目,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • cgroup?blkio子系統(tǒng)對容器的讀寫限速詳解

    cgroup?blkio子系統(tǒng)對容器的讀寫限速詳解

    這篇文章主要為大家介紹了cgroup?blkio子系統(tǒng)對容器的讀寫限速詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Docker?環(huán)境?Nacos2?MySQL8的詳細操作

    Docker?環(huán)境?Nacos2?MySQL8的詳細操作

    本文介紹?docker?環(huán)境下安裝并單機運行?Nacos2,使用?docker?環(huán)境下的?MySQL?8?存儲數(shù)據(jù)?,對Docker?環(huán)境?Nacos2?MySQL8相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • CentOS7虛擬機安裝并配置docker套件

    CentOS7虛擬機安裝并配置docker套件

    這篇文章主要介紹了CentOS7虛擬機安裝并配置docker套件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • docker刷新配置、修改默認驅(qū)動方式

    docker刷新配置、修改默認驅(qū)動方式

    這篇文章主要介紹了docker刷新配置、修改默認驅(qū)動方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Docker?部署?Nexus?Maven私服的詳細過程

    Docker?部署?Nexus?Maven私服的詳細過程

    Nexus?是一個強大的倉庫管理器,廣泛用于管理和組織軟件構(gòu)建過程中的依賴項和構(gòu)件,通過?Docker?部署?Nexus?私服,可以簡化安裝和管理過程,并提供更高的靈活性和可擴展性,這篇文章主要介紹了Docker?部署?Nexus?Maven私服的詳細過程,需要的朋友可以參考下
    2024-08-08

最新評論