使用docker在linux下从零部署java应用jar

linux下从零部署java应用jar

本文作为操作笔记记录,从零开始部署jar应用,包括nginx等

安装docker

方式1、直接使用docker官网包进行安装(部分网络无法访问请切换方式2)
	
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.3-3.1.e
l8.x86_64.rpm --allowerasing
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce 

方式2、使用阿里云仓库资源安装
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y yum-utils
yum -y install docker-ce docker-ce-cli containerd.io

docker相关操命令

//启动Docker命令:
systemctl start docker
//停止Docker命令:
systemctl stop docker
//查看docker镜像:
docker images
//查看docker容器:
docker ps
//查看所有docker容器:
docker ps -a
//进入docker容器:
docker exec -it 容器名称或Id bash   例:docker exec -it mynginx bash
//启动docker容器:
docker start 容器名称或容器Id   例:docker start mynginx
//停止docker容器:
docker stop 容器名称或容器Id   例:docker stop mynginx
//重启docker容器:
docker restart 容器名称或容器Id    例:docker restart mynginx
//搜索镜像
docker search 镜像名称
//拉取镜像到docker中  
docker pull 镜像名称:版本号     例:docker pull openjdk:11
//创建并运行容器:
docker run -d --name 容器名称 -p 容器端口:宿主机端口 镜像名称  (-d 标识在后台运行  --name 指定容器名称,如不指定则随机字符串 -p 端口映射,将容器内端口号和宿主机端口号映射  镜像名称为已经下载在docker中的镜像) 例如:docker run -d --name mynginx -p 8080:80 nginx
从宿主机拷贝文件至docker容器中命令:docker cp 宿主机文件地址 容器名称:容器内放置文件的路径文件夹 例:docker cp /opt/test.js mynginx:/usr/local/tomcat/webapps/test/js
//从docker容器中拷贝文件至宿主机中:
docker cp 容器名称:文件地址 宿主机文件放置文件夹   例:docker cp mynginx:/etc/nginx/nginx.conf  /home/docker-nginx

安装nginx

//默认拉取最新的一个版本
docker pull nginx 
//查看已经拉取的docker中的镜像文件
docker images nginx
//创建并启动一个容器  myindex=别名(可以更改) nginx=镜像名称(可以更改) 8080=服务器本身映射端口,就是用于客户端访问的, 80=容器内nginx的监听端口 都是可以自定义的
docker run -d --name mynginx -p 8080:80 nginx 
//查看所有的容器列表,可看到是否启动及端口
docker ps -a 
//在docker容器中无法执行vi和vim编辑命令,如需要运行则执行命令:apt-get  update  和 apt-get install vim
//将docker容器中的配置文件映射到宿主机上命令:
docker run --name nginx -p 80:80 -v /home/docker-nginx/nginx.conf:/etc
/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx  -v /home/docker-nginx/conf.d/default.conf:/etc/
conf.d/default.conf -d nginx
//解释下上面的命令:
//--name  给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
//-p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定
//-v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面
//第三个-v 表示的和第一个-v意思一样的。
//-d 表示在后台运行,在退出docker终端后继续运行

安装mysql

//拉取myslq 8镜像到本机
docker pull mysql:8   
//创建并运行mysql8
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=beitia@123456.. -d mysql  
//进入mysql镜像
docker exec -it mysql bash  
//镜像内连接mysql   -p后面是上面的root密码
mysql -uroot -pbeiantia@123456.. 

--mysql5.7
//重新创建一个root用户,赋予全部权限,并且允许远程连接。如有需要,可以创建一个部分权限的用户用于远程连接或直接删除此用户
grant all privileges on *.* to root@'%' identified by 'beitia@123456..'; 

–mysql8执行如下:


更改 root 用户的主机设置。在 MySQL 命令行中输入以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
更改 root 用户以允许从任何主机连接。
sql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

安装jdk

//拉取jdk11版本到本机  注意,在linux系统上,是openjdk
docker pull openjdk:11  
//创建一个java-11的容器运行openjdk    一般不需要运行此步骤,用于验证拉取的openjdk是否正确
docker run -d -it --name java-11 openjdk:11  

安装redis

//拉取redis 默认最新版
docker pull redis
//部署redis为容器
docker run --name redis -p 6379:6379 -d redis
//启动redis
docker start redis

部署jar

方式1、采用dockerFile方式

//首先在/home目录下创建一个文件夹,最好就跟项目名称一致  例如:/home/docker-jar
mkdir docker-jar
 //进入到新创建得目录中
cd /home/docker-jar   
//创建dockerFile文件,此文件用于备注所需基础镜像和jar文件路径及运行命令等
touch Dockerfile    
 //编辑当前Dockerfile文件
vi Dockerfile        

Dockerfile中填充如下内容

# 拉取jdk11作为基础镜像,这里的名称及版本就是拉取到本地的镜像名称和版本号
FROM openjdk:11
# 作者
MAINTAINER jyj <jyj@163.com>
# 添加jar到镜像并命名为demo.jar
ADD demo-0.0.1-SNAPSHOT.jar /jar/demo.jar
# 镜像启动后暴露的端口
EXPOSE 8080
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","/jar/demo.jar"]

填充完内容后,先按esc 然后输入:wq

//部署Dockerfile文件为镜像,docker-jar为镜像名称,可以自定义。  注意结尾有一个点,不可忽略
docker build -t docker-jar .         
 //查看镜像,可以看到名称为docker-jar的镜像信息
docker images       
//创建并运行容器   -v映射jar包地址  
docker run -d --name demo -p 8080:8080 -v /home/docker-jar/jar:/jar docker-jar

对于单体应用部署足够使用,对于微服务也可以使用这种,但建议使用jenkins或K8s等

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤在Linux使用Docker部署Spring Boot项目(使用JDK 11): 1. 首先,确保你已经在Linux上安装了Docker。你可以使用以下命令来验证Docker是否已经安装: ``` docker --version ``` 如果没有安装,请参考Docker官方文档进行安装。 2. 创建一个新的文件夹用于存放你的Spring Boot项目。在该文件夹中,创建一个名为 `Dockerfile` 的文件,并添加以下内容: ```Dockerfile FROM adoptopenjdk:11-jdk-hotspot ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 这个Dockerfile使用了 `adoptopenjdk` 镜像作为基础,然后将你的Spring Boot项目的jar文件复制到Docker容器中,并使用 `java -jar` 命令运行它。 3. 在你的Spring Boot项目的根目录中,打开一个终端窗口,并构建Docker镜像。运行以下命令: ``` docker build -t my-spring-boot-app . ``` 这将使用上述的Dockerfile构建一个名为 `my-spring-boot-app` 的Docker镜像。确保在命令的末尾有一个 `.`,它表示Dockerfile位于当前目录。 4. 构建成功后,你可以运行该Docker镜像并将Spring Boot应用程序部署为一个容器。使用以下命令: ``` docker run -p 8080:8080 my-spring-boot-app ``` 这将运行容器并将容器的8080端口映射到主机的8080端口。你可以根据需要更改端口映射。 现在,你的Spring Boot项目应该已经成功地在Docker容器中运行了,并且可以通过访问 `http://localhost:8080` 在主机上进行访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值