最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用docker快速部署Nginx、Redis、MySQL、Tomcat及制作鏡像的方法

 更新時(shí)間:2024年11月19日 15:13:57   作者:墨鴉_Cormorant  
這篇文章介紹了如何使用Docker快速部署Nginx、Redis、MySQL、Tomcat以及制作鏡像的過程,它涵蓋了從基礎(chǔ)鏡像的使用、Dockerfile的編寫到應(yīng)用的構(gòu)建和部署的詳細(xì)步驟,通過本文,可以掌握如何利用Docker簡化應(yīng)用的部署和管理,感興趣的朋友跟隨小編一起看看吧

應(yīng)用快速部署

Nginx

docker run -d -p 80:80 nginx

使用瀏覽器訪問虛擬機(jī)地址

Redis

docker pull redis
docker run --name redis -d -p 6379:6379 redis

可以使用 Redis 客戶端工具連接

連接成功可以看到服務(wù)器信息

MySQL

企業(yè)中用得最多的是 MySQL 5.7 版本

docker pull centos/mysql-57-centos7
# MYSQL_ROOT_PASSWORD是設(shè)置默認(rèn)登錄用戶名和密碼都是root
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7

通過客戶端例如 navicat、dbeaver 連接

Tomcat

可以先在 Docker Hub 中搜索 tomcat,找到對(duì)應(yīng)的 tomcat 版本和 JDK 版本

# 下載鏡像
docker pull tomcat
# 創(chuàng)建tomcat目錄
mkdir -p /opt/docker/tomcat/ROOT
cd /opt/docker/tomcat/ROOT
# 創(chuàng)建index.html文件
vim index.html
# 寫入簡單內(nèi)容
<html>
	<h1>Hello Tomcat in Docker!</h1>
</html>
# 啟動(dòng)容器
docker run -d -p 8080:8080 --name tomcat -v /opt/docker/tomcat:/usr/local/tomcat/webapps tomcat

參數(shù)說明:

  • -p 8080:8080 :將容器的 8080 端口映射到主機(jī)的 8080 端口
  • -p XXX:YYY :前面的 XXX 指的是宿主機(jī)的端口,后面的 YYY 指的是容器中的端口
  • -v /opt/docker/tomcat:/usr/local/tomcat/webapps 將主機(jī)中 /opt/docker/tomcat 目錄掛載到容器的 webapps

用瀏覽器打開 8080 端口

制作鏡像

鏡像原理

思考:

Docker 鏡像本質(zhì)是什么?

是一個(gè)分層文件系統(tǒng)

Docker 中一個(gè) centos 鏡像為什么只有200MB,而一個(gè) centos 操作系統(tǒng)的 iso 文件要幾個(gè)G ?

Centos 的 iso 鏡像文件包含 bootfs 和 rootfs,而 docker 的 centos 鏡像復(fù)用操作系統(tǒng)的 bootfs,只有 rootfs 和其他鏡像層

Docker 中一個(gè) tomcat 鏡像為什么有 600MB,而一個(gè) tomcat 安裝包只有 10多MB?

由于 docker 中鏡像是分層的,tomcat 雖然只有10多MB,但他需要依賴于父鏡像和基礎(chǔ)鏡像,所有整個(gè)對(duì)外暴露的 tomcat 鏡像大小 600多MB

鏡像原理

基于已有容器創(chuàng)建

docker commit [OPTIONS] 容器名稱或ID [鏡像名稱[:TAG]]
# 示例;使用MySQL容器創(chuàng)建鏡像
docker commit 7c mysqltest:1.0
# 查看鏡像
docker images
# 啟動(dòng)容器
docker run -d -p 3306:3306 mysqltest:1.0

OPTIONS 參數(shù)說明:

  • -a, --author string :作者信息
  • -c, --change list :使用 Dockerfile 創(chuàng)建
  • -m, --message string :提交信息
  • -p, --pause :提交時(shí)暫停容器運(yùn)行

使用 Dockerfile 創(chuàng)建鏡像

Dockerfile 是一個(gè)文件,內(nèi)容由一行行命令語句組成,主要分為四個(gè)部分:基礎(chǔ)鏡像信息、維護(hù)者信息、鏡像操作指令和容器啟動(dòng)時(shí)執(zhí)行指令。

# 使用基礎(chǔ)鏡像
FROM ubuntu:latest
# 設(shè)置時(shí)區(qū)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 設(shè)置鏡像的作者信息
#LABEL maintainer="Your Name <your.email@example.com>"
# 暴露容器的端口。非必需
#EXPOSE 80
# 定義環(huán)境變量
#ENV ENV_VARIABLE_NAME=value
# 執(zhí)行更新操作并安裝基本軟件包。非必需
#RUN apt-get update && \
#    apt-get install -y \
#    software-properties-common \
#    build-essential \
#    curl
# 設(shè)置工作目錄
WORKDIR /app
# 復(fù)制本地文件到容器中
COPY . /app
# 執(zhí)行容器啟動(dòng)時(shí)的命令
CMD ["command", "arg1", "arg2"]
# 或者,如果需要以可執(zhí)行文件形式運(yùn)行應(yīng)用程序
# CMD ["./your_executable"]
# 或者,如果是需要通過ENTRYPOINT啟動(dòng)的服務(wù)
# ENTRYPOINT ["entrypoint_script.sh"]

指令說明

指令說明
FROM指定所創(chuàng)建鏡像的基礎(chǔ)鏡像
MAINTAINER維護(hù)者信息
RUN運(yùn)行命令
CMD啟動(dòng)容器時(shí)默認(rèn)執(zhí)行命令
LABEL標(biāo)簽信息
EXPOSE聲明鏡像內(nèi)服務(wù)所監(jiān)聽的端口
ENV環(huán)境變量
ADD復(fù)制指定路徑下的內(nèi)容到容器中的路徑下,可以為URL,也可以是文件路徑,如果為tar文件,會(huì)自動(dòng)解壓
COPY復(fù)制宿主機(jī)的定路徑下的內(nèi)容到容器中的路徑下
USER運(yùn)行容器時(shí)的用戶名
WORKDIR配置工作目錄
ARG指定鏡像內(nèi)使用的參數(shù)

構(gòu)建應(yīng)用

需求:構(gòu)建一個(gè) Web 應(yīng)用,通過 docker 來運(yùn)行

步驟:

使用 SpringBoot 搭建應(yīng)用,并提供一個(gè) REST 接口

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "Hello Docker!";
    }
}
  • 將應(yīng)用打包成 jar 包
  • 將 jar 包上傳到 Linux 服務(wù)器
  • 構(gòu)建 dockerfile 文件

創(chuàng)建 Dockerfile 文件

vi Dockerfile

編輯內(nèi)容如下:

# Spring Boot 運(yùn)行需要依賴java
FROM java:8
# 復(fù)制jar包到容器中
COPY docker-demo-0.0.1-SNAPSHOT.jar docker-demo-0.0.1-SNAPSHOT.jar
# 運(yùn)行命令
CMD java -jar docker-demo-0.0.1-SNAPSHOT.jar

創(chuàng)建鏡像

編寫完成Dockerfile后,可以通過以下命令來創(chuàng)建鏡像:

docker build [OPTIONS]

主要參數(shù)如下:

  • -f :指定 Dockerfile 路徑,默認(rèn)為當(dāng)前目錄
  • -t :指定生成鏡像的標(biāo)簽信息

示例:

# 最后的.表示當(dāng)前目錄
docker build -t mywebapp:1.0 .

構(gòu)建過程:

# 查看鏡像
docker images
# 啟動(dòng)鏡像
docker run -d -p 8080:8080 mywebapp:1.0

打開瀏覽器訪問

到此這篇關(guān)于使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作鏡像的文章就介紹到這了,更多相關(guān)docker部署Nginx、Redis、MySQL、Tomcat內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker-compose部署mysql數(shù)據(jù)庫完整步驟

    docker-compose部署mysql數(shù)據(jù)庫完整步驟

    Docker-Compose項(xiàng)目是Docker官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì)Docker容器集群的快速編排,這篇文章主要給大家介紹了關(guān)于docker-compose部署mysql數(shù)據(jù)庫的完整步驟,需要的朋友可以參考下
    2024-05-05
  • 如何調(diào)整Docker中nginx的日志級(jí)別詳解

    如何調(diào)整Docker中nginx的日志級(jí)別詳解

    這篇文章主要給大家介紹了關(guān)于如何調(diào)整Docker中nginx的日志級(jí)別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • docker 如何刪除none鏡像

    docker 如何刪除none鏡像

    本篇文章主要介紹了docker 如何刪除none鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • docker基本使用方法入門示例

    docker基本使用方法入門示例

    這篇文章主要介紹了docker基本使用方法入門示例,包含docker命令查詢方法,查詢鏡像和下拉鏡像,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Docker部署MongoDb的詳細(xì)過程記錄

    Docker部署MongoDb的詳細(xì)過程記錄

    這篇文章主要介紹了如何使用Docker?Compose啟動(dòng)MongoDB副本集,包括配置文件編寫、容器啟動(dòng)命令、副本集初始化、角色和用戶創(chuàng)建等步驟,需要的朋友可以參考下
    2024-12-12
  • Docker?Push?Skipped?foreign?layer?的錯(cuò)誤問題及解決方案

    Docker?Push?Skipped?foreign?layer?的錯(cuò)誤問題及解決方案

    當(dāng)Docker推送基于Windows鏡像到私有倉庫的時(shí)候會(huì)遇到Skipped foreign layer的問題,這篇文章主要介紹了Docker?Push?Skipped?foreign?layer?的錯(cuò)誤問題及解決方案,需要的朋友可以參考下
    2022-05-05
  • dockerfile結(jié)合go應(yīng)用程序的簡單應(yīng)用代碼示例

    dockerfile結(jié)合go應(yīng)用程序的簡單應(yīng)用代碼示例

    Dockerfile文件是一個(gè)包含了指令和參數(shù)的文本文件,用于自動(dòng)化構(gòu)建Docker鏡像,這篇文章主要給大家介紹了關(guān)于dockerfile結(jié)合go應(yīng)用程序的簡單應(yīng)用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 在docker環(huán)境中實(shí)現(xiàn)配置hosts

    在docker環(huán)境中實(shí)現(xiàn)配置hosts

    這篇文章主要介紹了在docker環(huán)境中實(shí)現(xiàn)配置hosts,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Docker使用編寫dockerfile啟動(dòng)node.js應(yīng)用

    Docker使用編寫dockerfile啟動(dòng)node.js應(yīng)用

    這篇文章主要介紹了Docker使用編寫dockerfile啟動(dòng)node.js應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 關(guān)于docker?cgroups資源限制的問題

    關(guān)于docker?cgroups資源限制的問題

    cgroups是一個(gè)非常強(qiáng)大的linux內(nèi)核工具,他不僅可以限制被namespace隔離起來的資源,還可以為資源設(shè)置權(quán)重、計(jì)算使用量,這篇文章主要介紹了docker?cgroups資源限制,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

苍溪县| 全椒县| 凤翔县| 贵溪市| 建阳市| 博乐市| 龙山县| 龙里县| 万州区| 东乌| 巴彦县| 抚顺市| 隆回县| 博白县| 疏勒县| 于田县| 涞源县| 青海省| 正镶白旗| 三明市| 奉节县| 建宁县| 宣化县| 麦盖提县| 英山县| 博罗县| 霍邱县| 当阳市| 贵阳市| 沁水县| 会同县| 新晃| 岢岚县| 若尔盖县| 五原县| 丰顺县| 云阳县| 古蔺县| 中超| 卢氏县| 宜昌市|