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

Docker?DockerFile部署java?jar項目包及Mysql和Redis的詳細過程

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

Docker運行環(huán)境要求系統(tǒng)為64位、Linux系統(tǒng)內核版本為 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 裝鏡像倉庫

因為docker的服務器是在國外,

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

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

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已經安裝完畢

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

命令參數說明:

參數說明:

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

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

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

2.3 查看容器

docker ps 

 進入容器執(zhí)行

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

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

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

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

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

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

[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)建配置文件

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

# bind 127.0.0.1
protected-mode no
port 6379
tcp-backlog 511
#設置密碼為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是關閉守護線程,如果開啟的話容器會啟動不起來 

根據個人需求進行配置 

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

參數說明:

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

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

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

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

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

 到這里redis就安裝完成了

4. docker部署java jar

4.1 將jar上傳到需要構建鏡像的目錄

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

#基礎鏡像使用jdk1.8
FROM openjdk:8-jdk-alpine
#作者
MAINTAINER pan
# VOLUME 指定臨時文件目錄為/tmp,在主機/var/lib/docker目錄下創(chuàng)建了一個臨時文件并鏈接到容器的/tmp
VOLUME /tmp
# 將jar包添加到容器中并更名
ADD ruoyi-admin.jar app.jar
# 運行jar包
RUN bash -c 'touch /app.jar'
# 為了縮短 Tomcat 啟動時間,添加一個系統(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 構建鏡像 (需要在Dockerfile同級目錄下構建,執(zhí)行次命令)

docker build -t app:1.0 .    # 注意末尾的點不能去掉

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

docker images

4.5 啟動后端項目鏡像

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

4.6 查看容器是否啟動成功

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

可以訪問進一步驗證

后端部署完成

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

查看容器的日志

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

 通過日志確定問題,將報錯進行復制,進行百度搜索,自行解決 

總結

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

相關文章

  • Java使用HashMap映射實現消費抽獎功能

    Java使用HashMap映射實現消費抽獎功能

    這篇文章主要為大家詳細介紹了Java使用HashMap映射實現消費抽獎功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • JPA中EntityListeners注解的使用詳解

    JPA中EntityListeners注解的使用詳解

    這篇文章主要介紹了JPA中EntityListeners注解的使用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • VMware虛擬機下hadoop1.x的安裝方法

    VMware虛擬機下hadoop1.x的安裝方法

    這篇文章主要為大家詳細介紹了VMware虛擬機下hadoop1.x的安裝方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • springboot restTemplate連接池整合方式

    springboot restTemplate連接池整合方式

    這篇文章主要介紹了springboot restTemplate連接池整合方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • MybatisPlus 連表查詢、邏輯刪除功能實現(多租戶)

    MybatisPlus 連表查詢、邏輯刪除功能實現(多租戶)

    這篇文章主要介紹了MybatisPlus 連表查詢、邏輯刪除功能實現(多租戶),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • java導出Excel通用方法實例

    java導出Excel通用方法實例

    這篇文章主要介紹了java導出Excel方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Java中使用Socket發(fā)送Java對象實例

    Java中使用Socket發(fā)送Java對象實例

    這篇文章主要介紹了Java中使用Socket發(fā)送Java對象實例,本文使用對象流直接發(fā)送對象,本文同時給出代碼實例,需要的朋友可以參考下
    2015-05-05
  • Java人機猜拳實現的思路及方法實例

    Java人機猜拳實現的思路及方法實例

    這篇文章主要給大家介紹了關于Java人機猜拳實現的思路及方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Java使用5個線程計算數組之和

    Java使用5個線程計算數組之和

    本文主要介紹了Java使用5個線程計算數組之和,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 詳解Java的MyBatis框架和Spring框架的整合運用

    詳解Java的MyBatis框架和Spring框架的整合運用

    在Web端的SSH框架整合中Spring主要負責數據庫處理,而引入MyBatis后二者的集成使用效果更佳,下面我們就來詳解Java的MyBatis框架和Spring框架的整合運用
    2016-06-06

最新評論

安远县| 两当县| 庆安县| 上林县| 钦州市| 大余县| 西平县| 甘南县| 南陵县| 平乐县| 双桥区| 吴忠市| 长岛县| 抚松县| 东乌珠穆沁旗| 康乐县| 永济市| 富民县| 梧州市| 融水| 萨迦县| 清丰县| 西乡县| 宁安市| 宾阳县| 铜梁县| 平原县| 内江市| 新平| 晋江市| 都江堰市| 嵊州市| 平谷区| 盖州市| 新乡县| 潜山县| 庆阳市| 通渭县| 长寿区| 阿鲁科尔沁旗| 蕲春县|