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

Docker?DockerFile部署java?jar項(xiàng)目包及Mysql和Redis的詳細(xì)過程

 更新時(shí)間:2023年12月09日 11:11:29   作者:dongcsdn123  
Dockerfile是一種用于構(gòu)建Docker鏡像的文件格式,可以通過Dockerfile部署Java項(xiàng)目,這篇文章主要給大家介紹了關(guān)于Docker?DockerFile部署java?jar項(xiàng)目包及Mysql和Redis的詳細(xì)過程,需要的朋友可以參考下

Docker運(yùn)行環(huán)境要求系統(tǒng)為64位、Linux系統(tǒng)內(nèi)核版本為 3.8以上

1. Docker安裝

1.1 搭建gcc環(huán)境 (gcc是編程語言譯器)

yum -y install gcc
yum -y install gcc-c++

1.2 安裝需要的軟件包

yum install -y yum-utils

1.3 裝鏡像倉庫

因?yàn)閐ocker的服務(wù)器是在國外,

所以有時(shí)候從倉庫中下載鏡像的時(shí)候會連接被拒絕或者連接超時(shí)的情況!

因此可以使用阿里云鏡像倉庫

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4 新yum軟件包索引

 yum makecache fast

1.5 安裝docker引擎

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

1.6 啟動docker

systemctl start docker

1.7 查看docker版本

docker version

1.8 配置阿里云鏡像加速

 在CentOS下配置鏡像加速器

mkdir -p /etc/docker 
tee /etc/docker/daemon.json <<-'EOF'
{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->
  "registry-mirrors": ["你個人的阿里云鏡像加速器地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker 

 docker已經(jīng)安裝完畢

2. docker安裝Mysql

2.1 拉取mysql鏡像

docker pull mysql:8.0.19

2.2 啟動mysql

 # docker run 創(chuàng)建一個新的容器
docker run -d -p 23306:3306 --name mysql \
-v /usr/dcoker-mysql/log:/var/log/mysql \
-v /usr/docker-mysql/data:/var/lib/mysql \
-v /usr/docker-mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.19

命令參數(shù)說明:

參數(shù)說明:

  • -d   后臺運(yùn)行
  • -p 33060:3306  端口映射,宿主機(jī)的33060端口映射到容器3306端口
  • --name mysql  容器名稱,可以自定義
  • -v /usr/dcoker-mysql/log:/var/log/mysql  宿主機(jī)/usr/dcoker-mysql/log目錄與容器的/var/log/mysql目錄掛載,該目錄保存了mysql的日志
  • -v /usr/docker-mysql/data:/var/lib/mysql  也是掛載,該目錄是mysql數(shù)據(jù)儲存的位置
  • -v /usr/docker-mysql/conf:/etc/mysql/conf.d  也是掛載,該目錄放置配置文件的
  • -e MYSQL_ROOT_PASSWORD=123456  設(shè)置環(huán)境變量,該變量是設(shè)置root用戶的密碼,可自行修改
  • mysql:8.0.19  鏡像名稱以及tag

如果不掛載數(shù)據(jù)卷,容器被刪掉之后,mysql數(shù)據(jù)庫里面的數(shù)據(jù)都會消失 

如果啟動失敗,可以執(zhí)行docker logs -f -t --tail 1000  [容器id] ,查看日志,找失敗的原因

2.3 查看容器

docker ps 

 進(jìn)入容器執(zhí)行

# docker exec 在運(yùn)行的容器中執(zhí)行命令
docker exec -it mysql mysql -uroot -p123456

參數(shù)說明: -i 以交互模式運(yùn)行容器 -t 為容器重新分配一個偽輸入終端 mysql -uroot -p123456 容器執(zhí)行的命令,直接進(jìn)入容器中的mysql 

*注意:安裝的mysql是8.x版本的,默認(rèn)的身份驗(yàn)證插件為caching_sha2_password,該插件不能使用舊版本的客戶端來連接;如果所使用的Navicat版本較舊,需要修改身份驗(yàn)證插件才能登錄。修改插件執(zhí)行:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

使用navicat連接后創(chuàng)建數(shù)表并插入數(shù)據(jù), 如果出現(xiàn)亂碼, 修改配置文件

執(zhí)行exit退出容器, 在宿主機(jī)中掛載的配置文件編寫

執(zhí)行 vim /usr/docker-mysql/conf/my.cnf, 這個目錄就是上面創(chuàng)建容器時(shí)掛載的數(shù)據(jù)卷

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8

 保存之后執(zhí)行docker restart mysql重啟容器

3. docker部署redis

3.1 拉取redis鏡像

docker pull redis:6.0.8

3.2 創(chuàng)建配置文件

在宿主機(jī)上創(chuàng)建一個文件redis.conf, 路徑可以自定義, 這里提供一個配置文檔, 配置可根據(jù)自己的需求修改, 本文配置文件路徑: /usr/docker-redis/conf/reids.conf

# bind 127.0.0.1
protected-mode no
port 6379
tcp-backlog 511
#設(shè)置密碼為123456,可注釋掉
requirepass 123456
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

* 注意:daemonize no是關(guān)閉守護(hù)線程,如果開啟的話容器會啟動不起來 

根據(jù)個人需求進(jìn)行配置 

3.3 執(zhí)行以下命令啟動容器

docker run -d -p 6379:6379 --name redis \
-v /usr/docker-redis/conf/redis.conf:/etc/redis/redis.conf \
-v /usr/docker-redis/data:/data \
redis redis-server /etc/redis/redis.conf

參數(shù)說明:

  • -d   后臺運(yùn)行
  • -p 6379:6379  端口映射,<宿主機(jī)端口>:<容器端口>
  • --name redis   容器名稱,可以自定義
  • -v /usr/docker-redis/conf/redis.conf:/etc/redis/redis.conf  宿主機(jī)/usr/docker-redis/conf/redis.conf文件與容器的/etc/redis/redis.conf文件掛載
  • -v /usr/docker-redis/data:/data  也是掛載,該目錄是redis數(shù)據(jù)持久化文件儲存的位置
  • redis    鏡像名稱
  • redis-server /etc/redis/redis.conf   以上面redis.conf文件寫的配置啟動redis

啟動redis容器之后,執(zhí)行docker ps查看是否啟動成功

如果沒有啟動成功可以執(zhí)行命令docker logs <容器名稱或id>查看日志;如果日志沒有內(nèi)容可能是配置中開啟了守護(hù)線程的原因,關(guān)閉即可

啟動成功后,執(zhí)行docker exec -it redis redis-cli命令進(jìn)入容器

如果設(shè)置了密碼,執(zhí)行auth 123456(123456配置中的密碼,沒有配置密碼的直接跳過這步)

 到這里redis就安裝完成了

4. docker部署java jar

4.1 將jar上傳到需要構(gòu)建鏡像的目錄

4.2 在當(dāng)前目錄下創(chuàng)建Dockerfile編寫Dockerfile (最好命名Dockerfile,否則構(gòu)建需要指定文件名)

#基礎(chǔ)鏡像使用jdk1.8
FROM openjdk:8-jdk-alpine
#作者
MAINTAINER pan
# VOLUME 指定臨時(shí)文件目錄為/tmp,在主機(jī)/var/lib/docker目錄下創(chuàng)建了一個臨時(shí)文件并鏈接到容器的/tmp
VOLUME /tmp
# 將jar包添加到容器中并更名
ADD ruoyi-admin.jar app.jar
# 運(yùn)行jar包
RUN bash -c 'touch /app.jar'
# 為了縮短 Tomcat 啟動時(shí)間,添加一個系統(tǒng)屬性指向 “/dev/./urandom” 作為 Entropy Source
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
#ENTRYPOINT ["nohup","java","-jar","/data/app/ruoyi-admin.jar","&"]
#暴露8080端口
EXPOSE 8080

4.3 構(gòu)建鏡像 (需要在Dockerfile同級目錄下構(gòu)建,執(zhí)行次命令)

docker build -t app:1.0 .    # 注意末尾的點(diǎn)不能去掉

4.4 構(gòu)建成功后查看當(dāng)前的鏡像, 構(gòu)建過程中如果沒有拉取過openjdk:8-jdk-alpine,需要等待下載

docker images

4.5 啟動后端項(xiàng)目鏡像

 docker run -d --name app-container -p 8080:8080 app:1.0

4.6 查看容器是否啟動成功

docker ps , 如果成功過則代表后端部署完成

可以訪問進(jìn)一步驗(yàn)證

后端部署完成

4.7 如果容器沒有啟動成功, 請看這一步

查看容器的日志

docker logs -f -t --tail 1000 [容器ID]

 通過日志確定問題,將報(bào)錯進(jìn)行復(fù)制,進(jìn)行百度搜索,自行解決 

總結(jié)

到此這篇關(guān)于Docker DockerFile部署java jar項(xiàng)目包及Mysql和Redis的文章就介紹到這了,更多相關(guān)Docker DockerFile部署jar項(xiàng)目包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot Security 結(jié)合 JWT 實(shí)現(xiàn)無狀態(tài)的分布式API接口

    Spring Boot Security 結(jié)合 JWT 實(shí)現(xiàn)無狀態(tài)的分布式API接口

    JSON Web Token(縮寫 JWT)是目前最流行的跨域認(rèn)證解決方案。這篇文章主要介紹了Spring Boot Security 結(jié)合 JWT 實(shí)現(xiàn)無狀態(tài)的分布式API接口 ,需要的朋友可以參考下
    2019-04-04
  • SpringBoot密碼加密的實(shí)現(xiàn)示例

    SpringBoot密碼加密的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot密碼加密的實(shí)現(xiàn)示例,包括引入依賴、配置加密工具、生成加密密鑰、加密密碼、配置解密,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • RocketMQ?ConsumeQueue與IndexFile實(shí)時(shí)更新機(jī)制源碼解析

    RocketMQ?ConsumeQueue與IndexFile實(shí)時(shí)更新機(jī)制源碼解析

    這篇文章主要為大家介紹了RocketMQ?ConsumeQueue與IndexFile實(shí)時(shí)更新機(jī)制源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 淺析Java異常處理中斷言的使用

    淺析Java異常處理中斷言的使用

    這篇文章主要介紹了Java異常處理中斷言的使用,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 一文帶你掌握J(rèn)ava中的HashSet

    一文帶你掌握J(rèn)ava中的HashSet

    HashSet?基于?HashMap?來實(shí)現(xiàn)的,是一個不允許有重復(fù)元素的集合,HashSet?不是線程安全的,?如果多個線程嘗試同時(shí)修改?HashSet,則最終結(jié)果是不確定的,本文將帶你詳細(xì)了解Java中的HashSet,,需要的朋友可以參考下
    2023-05-05
  • SpringBoot關(guān)于自動注入mapper為空的坑及解決

    SpringBoot關(guān)于自動注入mapper為空的坑及解決

    這篇文章主要介紹了SpringBoot關(guān)于自動注入mapper為空的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringAop實(shí)現(xiàn)原理及代理模式詳解

    SpringAop實(shí)現(xiàn)原理及代理模式詳解

    Spring的AOP就是通過動態(tài)代理實(shí)現(xiàn)的,使用了兩個動態(tài)代理,分別是JDK的動態(tài)代理和CGLIB動態(tài)代理,本文重點(diǎn)給大家介紹下SpringAop實(shí)現(xiàn)原理及代理模式,感興趣的朋友一起看看吧
    2022-04-04
  • IDEA2023.1.3安裝教程及下載(圖文)

    IDEA2023.1.3安裝教程及下載(圖文)

    最新變化是在IDEA?2023.1中,對新UI做出了大量改進(jìn),本文主要介紹了IDEA2023.1.3安裝教程及下載,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • JPA如何使用nativequery多表關(guān)聯(lián)查詢返回自定義實(shí)體類

    JPA如何使用nativequery多表關(guān)聯(lián)查詢返回自定義實(shí)體類

    這篇文章主要介紹了JPA如何使用nativequery多表關(guān)聯(lián)查詢返回自定義實(shí)體類,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • maven多個plugin相同phase的執(zhí)行順序

    maven多個plugin相同phase的執(zhí)行順序

    這篇文章主要介紹了maven多個plugin相同phase的執(zhí)行順序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評論