springboot docker入门案例

目标:搭建环境并能够正常运行

1.环境搭建

     选择环境centos    linux    jdk1.8   springboot2.6

2.第二步,找官网

Install Docker Engine on CentOS | Docker Documentation

结合国内优秀文章说明

Docker 入门教程 - 阮一峰的网络日志

再结合其他一些什么解决报错问题,顺利能装好环境

linux环境执行命令

[root@localhost ~]# sudo yum install -y yum-utils

第三步:安装仓库位置(和maven有点类似吧?) 安装一下国内阿里的?

[root@localhost ~]#  sudo yum install -y yum-utils$ sudo yum-config-manager \
>     --add-repo \
>     https://download.docker.com/linux/centos/docker-ce.repo

第四步:先卸载历史版本

sudo yum remove docker \

                  docker-client \

                  docker-client-latest \

                  docker-common \

                  docker-latest \

                  docker-latest-logrotate \

                  docker-logrotate \

                  docker-engine

第五步:安装前先执行这个,可能你的环境中缺少这个文件

[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io --allowerasing

遇到这个报错时,请执行上面的:yum install docker-ce docker-ce-cli containerd.io --allowerasing

  - 软件包 runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 被模块过滤过滤掉

(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)

第六步:正式执行安装docker(官网上有)

[root@localhost ~]# sudo yum install docker-ce docker-ce-cli containerd.io

第七步:看是否安装成功

[root@localhost ~]#  docker version

第八步:简化命令,省略sudo,否则需要带sudo执行docker命令(一般情况)

执行:sudo usermod -aG docker $USER

第九步:列出本机的所有 image 文件

[root@localhost ~]# docker image ls
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE

第10步,编写springboot项目打jar并写好Dockerfile文件

springboot项目可参考其他文章

其中Dockerfile在项目路径外,和jar包在同一个位置,项目中仅为实例使用(可通过shell编程达到目的,此次简化)

[root@localhost dockerwork]# cd /usr/dockerwork
[root@localhost dockerwork]# ll
总用量 44384
-rw-r--r--. 1 root root      137 11月 27 06:44 Dockerfile
-rw-r--r--. 1 root root 45444727 10月 28 09:13 PdfApplication.jar

Dockerfile内容,需要注意的是add部分,将你jar所在的路径写好

FROM java:8
VOLUME /tmp
ADD PdfApplication.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

上传jar和Dockerfile上去,然后移动到你指定的文件夹下操作

CRT下:alt+p

sftp> put D:\pdfdemo\target\PdfApplication.jar
Uploading PdfApplication.jar to /root/PdfApplication.jar
  100% 44379KB  11094KB/s 00:00:04     
D:/pdfdemo/target/PdfApplication.jar: 45444727 bytes transferred in 4 seconds (11094 KB/s)
sftp> put D:\pdfdemo\target\Dockerfile 

[root@localhost ~]# mv PdfApplication.jar /usr/dockerwork/

注意Dockerfile不在jar包中

[root@localhost dockerwork]# ll
总用量 44384
-rw-r--r--. 1 root root      137 11月 27 06:44 Dockerfile
-rw-r--r--. 1 root root 45444727 10月 28 09:13 PdfApplication.jar

第十一步:制作镜像(最后有个点)

[root@localhost dockerwork]# docker build -t springbootdemo .
Sending build context to Docker daemon  45.45MB
Step 1/4 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/4 : VOLUME /tmp
 ---> Using cache
 ---> 76787ed369c9
Step 3/4 : ADD PdfApplication.jar app.jar
 ---> Using cache
 ---> 0c283fdc7b92
Step 4/4 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
 ---> Using cache
 ---> 63c45c0cd5c5
Successfully built 63c45c0cd5c5
Successfully tagged springbootdemo:latest

第十二步:查看镜像并启动

[root@localhost dockerwork]# docker image ls
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
springbootdemo          latest    63c45c0cd5c5   2 hours ago    689MB
hello-world             latest    feb5d9fea6a5   2 months ago   13.3kB
 

此处参数需要注意一下: 9002 是jar文件中启动设置的端口(具体可以通过properties,或者yml文件设置,8080是配置docker的;即做端口映射

[root@localhost dockerwork]# docker run -d -p 8080:9002 springbootdemo
abea14f77340cb86df10c42d5cabcc4b5bc3a2d77970ba11f763afcb03b9a46a

查看容器启动情况

[root@localhost dockerwork]# docker container ls
CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                                       NAMES
abea14f77340   springbootdemo   "java -Djava.securit…"   2 minutes ago   Up 2 minutes   0.0.0.0:8080->9002/tcp, :::8080->9002/tcp   practical_bose

第十三步:停止

找到容器id(CONTAINER ID)-- 命令:docker container kill    容器id

[root@localhost dockerwork]# docker container ls
CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                                       NAMES
abea14f77340   springbootdemo   "java -Djava.securit…"   2 minutes ago   Up 2 minutes   0.0.0.0:8080->9002/tcp, :::8080->9002/tcp   practical_bose
[root@localhost dockerwork]# docker container kill abea14f77340

若需要删除镜像文件(先停止对应的镜像,根据镜像id删除)

[root@localhost dockerwork]# docker ps -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS                       PORTS     NAMES
abea14f77340   springbootdemo          "java -Djava.securit…"   8 minutes ago   Exited (137) 4 minutes ago             practical_bose

[root@localhost dockerwork]# docker stop abea14f77340
bdfe6c66a9bb
[root@localhost dockerwork]# docker rm abea14f77340
bdfe6c66a9bb

至此完成初步的搭建,实际生成一般组合其他shell脚本来制作镜像(jekeins打包部署)

一套组合拳:

springboot/springcloud+docker+jekeins+k8s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值