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

docker部署應(yīng)用的三種方式

 更新時間:2024年03月07日 09:26:34   作者:_小許_  
越來越多的前端團隊選擇用Docker部署前端項目,本文主要介紹了docker部署應(yīng)用的三種方式,具有一定的參考價值,感興趣的可以了解一下

docker命令部署

拉取ubuntu的基礎(chǔ)鏡像

docker pull ubuntu

注意基礎(chǔ)鏡像是壓縮版的,只保證能夠運行項目的最基礎(chǔ)條件,很多命令都是沒有的,在使用過程中如果需要那些命令需要提前安裝。

安裝openjdk

sudo apt install openjdk-11-jdk

在這里插入圖片描述

安裝mysql

sudo apt-get install mysql-server 

在這里插入圖片描述

若安裝失敗更新一下源sudo apt-get update

上傳源代碼,構(gòu)建容器掛載數(shù)據(jù)卷。

源代碼就不粘貼了,就是查詢?nèi)缦聰?shù)據(jù)庫內(nèi)容:

在這里插入圖片描述

啟動容器掛載數(shù)據(jù)卷到源代碼目錄:

docker run -it -p 8080:8080 -v /home/xwh/java:/usr/local/java --name javaweb ubuntu

進入容器,切換到源代碼目錄:

java -jar demo-0.0.1-SNAPSHOT.jar

在這里插入圖片描述

dockerfile部署

在上一節(jié)中使用docker部署應(yīng)用,每一層鏡像都需要配置,這些可以通過Dockerfile構(gòu)建,docker可以構(gòu)建一個虛擬機,在虛擬機的基礎(chǔ)上依次配置程序需要的環(huán)境,再將源代碼上傳到虛擬機上。

FROM ubuntu:20.04
MAINTAINER gancy "xiaoxu@163.com"
#刷新包緩存,安裝wget工具
RUN apt-get update

#安裝并配置java環(huán)境

ADD jdk-8u101-linux-x64.tar.gz /usr/local/java

#配置環(huán)境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_101
ENV PATH $JAVA_HOME/bin;$PATH
ENV CLASSPATH .:$JAVA_HOME/lib

#配置運行環(huán)境
ENV LANG C.UTF-8

#配置Tomcat
ADD apache-tomcat-8.5.11.tar.gz /usr/local/tomcat/
RUN chmod +x /usr/local/tomcat/apache-tomcat-8.5.11/bin/*.sh
EXPOSE 8080
ENTRYPOINT /usr/local/tomcat/apache-tomcat-8.5.11/bin/startup.sh && /bin/bash

# Install MySQL.
RUN \
  apt-get update && \
  DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server && \
  rm -rf /var/lib/apt/lists/* && \
  sed -i 's/^\(bind-address\s.*\)/# \1/' /etc/mysql/my.cnf && \
  sed -i 's/^\(log_error\s.*\)/# \1/' /etc/mysql/my.cnf && \
  echo "mysqld_safe &" > /tmp/config && \
  echo "mysqladmin --silent --wait=30 ping || exit 1" >> /tmp/config && \
  echo "mysql -e 'GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"%\" WITH GRANT OPTION;'" >> /tmp/config && \
  bash /tmp/config && \
  rm -f /tmp/config

# Define mountable directories.
VOLUME ["/etc/mysql", "/var/lib/mysql"]

# Define working directory.
WORKDIR /data

# Define default command.
CMD ["mysqld_safe"]

# Expose ports.
EXPOSE 3306

直接安裝jdk和mysql,使用VOLUME設(shè)置數(shù)據(jù)卷

VOLUME["/home/java","/usr/local/java"]

最后通過鏡像構(gòu)建容器,進入容器對應(yīng)目錄下啟動服務(wù)。當(dāng)然也可以通過ENTREYPOINT啟動服務(wù)。

shell腳本使用Dockerfile一鍵化部署

通過上一步的Dockerfile部署已經(jīng)感受到了Dockerfile的強大,在上一節(jié)構(gòu)建完程序需要的環(huán)境后,需要進行上傳源代碼,打包,啟動程序的步驟。然而這些程序都是可以通過Dockerfile一鍵化完成的。

Dockerfile一鍵化部署的滿足條件是:

  • 下載基礎(chǔ)鏡像和程序所需環(huán)境鏡像
  • 配置參數(shù)、端口即數(shù)據(jù)卷等變量
  • 上傳程序并下載程序所需要的庫
  • 啟動程序
# 下載python3.7鏡像
FROM python

# 創(chuàng)建工作目錄

WORKDIR /usr/local/python

# 引入外部參數(shù)
ARG gitaddr
ARG path

# 暴露端口
EXPOSE 5000

# git克隆倉庫
RUN git clone ${gitaddr} share

# 安裝pip
RUN apt update
RUN apt install -y python3-pip

# 通過requirements安裝環(huán)境
RUN pip install -r ./share/requirements.txt


# 執(zhí)行命令
ENTRYPOINT ["cd","share"]
ENTRYPOINT ["ls"]
ENTRYPOINT ["python3","share/app.py"]

在上面的Dockerfile中,構(gòu)建了python所需要的環(huán)境;設(shè)置了工作目錄,參數(shù)端口等信息;通過克隆獲取源代碼,當(dāng)然也可以COPY上傳,并進入代碼目錄;最后啟動程序。

Dockerfile中運行一個程序的基本要素都有了,那么根據(jù)該Dockerfile打包鏡像,如下

docker build --build-arg gitaddr="https://gitee.com/fireapproval/share.git" --build-arg path="share" -t flask-test:1.0 .

通過--build-arg傳遞參數(shù)git倉庫地址,-t設(shè)置鏡像名稱和標(biāo)簽,.設(shè)置Docker所在目錄。

在這里插入圖片描述

flask-test即為剛剛構(gòu)建的鏡像。以該鏡像構(gòu)建容器:

 docker run -it -p 5000:5000 --name falsk-app flask-test:18

在這里插入圖片描述

在這里插入圖片描述

需要注意的是監(jiān)聽的host一定要是0.0.0.0,不然會出現(xiàn)只能在容器內(nèi)部訪問,在主機上訪問不了的情況。

在這里插入圖片描述

5000端口已經(jīng)被占用了。瀏覽器也成功訪問

在這里插入圖片描述

到這里還沒實現(xiàn)一鍵化部署,因為還需要人工調(diào)用兩個命令:

# 構(gòu)建鏡像的命令
docker build --build-arg gitaddr="https://gitee.com/fireapproval/share.git" --build-arg path="share" -t flask-test:1.0 .
# 運行容器的命令
docker run -it -p 5000:5000 --name falsk-app flask-test:18

這兩個命令也是可以通過shell腳本實現(xiàn)的,如下所示

#通過Dockerfile構(gòu)建鏡像在同一目錄下
# 參數(shù) git地址 
`docker build --build-arg gitaddr=$1 -t tmp-img:1.0 .`;

#通過鏡像啟動容器
# 參數(shù)容器名稱 
`docker run -it -p 5000:5000 --name $2 tmp-img:1.0`;

$1用于傳遞git地址,需是公開的,$2是啟動容器名稱。那么運行腳本的命令就是:

bash ./build.sh https://gitee.com/fireapproval/share.git flask-test2

在這里插入圖片描述

目錄文件如下所示:

在這里插入圖片描述

那么啟動腳本就會自動調(diào)用上述兩條命令,分別構(gòu)建一個鏡像,并根據(jù)鏡像構(gòu)建容器,并啟動容器。

在這里插入圖片描述

容器被我名稱成了tmp-img當(dāng)然也可以修改為其他任意名稱。那么在任意代碼中只要調(diào)用該shell腳本就能啟動git倉庫下的代碼了。

到此這篇關(guān)于docker部署應(yīng)用的三種方式的文章就介紹到這了,更多相關(guān)docker部署應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCloud與Docker的集成原理解析

    SpringCloud與Docker的集成原理解析

    Docker的核心原理是通過將應(yīng)用程序及其所有依賴項封裝到獨立的容器中,實現(xiàn)了跨平臺、一致性和可移植性,這篇文章主要介紹了SpringCloud-Docker原理解析,需要的朋友可以參考下
    2024-02-02
  • 使用Docker安裝SonarQube的詳細(xì)教程

    使用Docker安裝SonarQube的詳細(xì)教程

    這篇文章主要介紹了Docker安裝SonarQube的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • docker搭建canal的實現(xiàn)步驟

    docker搭建canal的實現(xiàn)步驟

    canal是監(jiān)聽主mysql的binlog日志,本文主要介紹了docker搭建canal的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • docker之如何搭建VXXXN

    docker之如何搭建VXXXN

    文章介紹了如何快速搭建IPsec-vvv-server并配置以啟動和運行,首先在服務(wù)器上執(zhí)行相關(guān)命令,然后查看運行情況并配置安全組開放指定端口,測試使用Win10系統(tǒng)自帶的VXXXN應(yīng)用連接失敗,但手機連接成功,文章提供了一定的配置指導(dǎo),并鼓勵大家參考和支持
    2025-01-01
  • Docker 教程之鏡像列出詳細(xì)介紹

    Docker 教程之鏡像列出詳細(xì)介紹

    這篇文章主要介紹了Docker 教程之鏡像列出詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Docker容器和本機之間的文件傳輸方法

    Docker容器和本機之間的文件傳輸方法

    這篇文章主要介紹了Docker容器和本機之間的文件傳輸方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 使用docker+devpi搭建本地pypi源的方法

    使用docker+devpi搭建本地pypi源的方法

    這篇文章主要介紹了使用docker+devpi搭建本地pypi源的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Docker鏡像的制作與使用淺析

    Docker鏡像的制作與使用淺析

    這篇文章主要介紹了Docker鏡像的制作與使用淺析的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Docker清理命令之如何刪除所有的鏡像和容器

    Docker清理命令之如何刪除所有的鏡像和容器

    這篇文章主要介紹了Docker清理命令之如何刪除所有的鏡像和容器問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Docker跨主機容器通信overlay實現(xiàn)過程詳解

    Docker跨主機容器通信overlay實現(xiàn)過程詳解

    這篇文章主要介紹了Docker跨主機容器通信overlay實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論