網站首頁 編程語言 正文
目錄
- 構建Java鏡像的 Dockerfile
- docker-compose.yml
- MySQL啟動腳本
構建Java鏡像的 Dockerfile
文件名稱:Dockerfile
Linux 查看時間命令:date
、時區命令:date -R
# 根據項目運行原件選擇不同的jdk版
# jdk1.8
FROM openjdk:8u265-jdk-slim
# FROM openjdk:8u265-jdk
# jdk11
# FROM openjdk:11.0.8-jdk
# 設置容器時區
ENV TZ=Asia/Shanghai
# 修改系統時區,默認是GMT,會慢8小時
# RUN echo "Asia/shanghai" > /etc/timezone;
# RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 設置工作目錄
WORKDIR /var/www
# 設置端口
EXPOSE 8080
# 拷貝程序
COPY *.jar /var/www/app.jar
# 運行
ENTRYPOINT ["java","-jar","app.jar", "--server.port=8080", "--spring.profiles.active=prod"]
docker-compose.yml
參考鏈接:https://docs.docker.com/compose/compose-file/compose-file-v3/
docker-compose 命令:https://blog.csdn.net/weixin_44953227/article/details/116902134
注意使用啟動命令的前提是
Dockerfile
和docker-compose.yml
以及項目jar包
這三個文件都在當前路徑上(三個文件都在同一個目錄)
類似這樣
[root@VM-06-16-centos-8-64 my-blog-site]# pwd
/home/root/www/my-blog-site
[root@VM-06-16-centos-8-64 my-blog-site]# ls
app.jar docker-compose.yml Dockerfile
[root@VM-06-16-centos-8-64 my-blog-site]#
文件名稱:docker-compose.yml
-
-d
:后臺運行 -
--build
:重新構建鏡像
啟動命令:docker-compose up -d --build
停止命令:docker-compose down
# 更多參考: https://docs.docker.com/compose/compose-file/compose-file-v3/
# 路徑說明 . 或者 ./ 代表相對當前路徑; / 代表絕對路徑
version: "3"
services:
webapp:
build:
# 構建鏡像的文件路徑, . 當前目錄
context: .
# 構建鏡像的文件名稱
dockerfile: Dockerfile
# 如果不自己構建鏡像(build) 也可以指定鏡像名稱或者本地的鏡像id, 如果鏡像不存在它會去遠程拉取, 比如: mysql:5.7、9bd7d8705a46
# 如果你指定了 build 的同時又指定了 image, 那么 image 的作用就會變成 鏡像名稱
image: my-blog-site
# 生成容器名稱
container_name: my-blog-site
# 工作目錄
working_dir: /var/www
# 是否自動重啟
restart: always
# 暴露端口
ports:
- "8080:8080"
# 雙向綁定: 宿主機和容器的文件或者文件夾
volumes:
- ./app.jar:/var/www/app.jar
- ./logs:/var/www/logs
- ./upload:/var/www/upload
# 設置環境變量
#environment:
# - TZ=Asia/Shanghai
# 會先啟動 redis 容器再啟動自身容器
#depends_on:
# - redis
# 執行命令
#command: java -jar app.jar --server.port=8080 --spring.profiles.active=prod
MySQL啟動腳本
MySQL 容器默認的配置文件位置:/etc/mysql/my.cnf
參考鏈接:https://hub.docker.com/_/mysql
docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql mysql:5.7
自定義配置文件版
docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql -v /home/root/mysql/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7
腳本啟動
1、生成腳本
echo "docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql mysql:5.7" > docker-mysql-up.sh
2、執行腳本
bash docker-mysql-up.sh
原文鏈接:https://blog.csdn.net/weixin_44953227/article/details/117997825
相關推薦
- 2023-10-15 C++ 實現基于時序公平的讀寫鎖
- 2022-05-06 SQL獲取數據庫中表信息:表名、建表時間、總行數、數據大小等
- 2022-06-12 Python使用matplotlib.pyplot?as?plt繪圖圖層優先級問題_python
- 2022-08-14 Redis+Caffeine兩級緩存的實現_Redis
- 2022-01-19 el-table 定位 跳轉 至指定 行 位置,保證數據更新后位置不變
- 2022-02-02 【layui】【laydate】設置可以選擇相同的年份范圍
- 2022-06-01 Python實現圖像的二進制與base64互轉_python
- 2023-01-01 Pytest使用logging模塊寫日志的實例詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支