腾飞易搭——轻松在docker上部署SpringBoot项目 | docker上部署java项目

5 篇文章 0 订阅
1 篇文章 0 订阅

Windows下的操作

将你的项目打包,此处以IDEA为例,右侧的Maven窗口点击install

打包完成后,文件会生成于项目目录的target目录下

Linux下的操作

指定一个文件夹作为操作目录,创建Dockerfile文件,可以使用touch或vim命令创建,写入以下内容

#使用JAVA作为基础镜像
FROM java:8
#指定要开放的端口
EXPOSE 8700
EXPOSE 3306
#指定JDK的环境目录
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
#添加外置的配置文件到容器
ADD config /config
#将项目的包添加到容器
ADD demo.jar /
#指定工作目录
WORKDIR /
#最后执行
CMD java -jar demo.jar

对于基础镜像的使用,参考https://www.cnblogs.com/ringwang/p/11967612.html

创建docker镜像

docker build -t docker-demo .

build 是创建命令 ,-t 是指定target 名称,docker-demo 就是镜像名称 ,. 指的是在当前目录下 寻找 Dockerfile文件。

查看镜像列表

docker image

运行容器

docker run -it -p 80:8080 docker-demo

run 运行镜像 -it以交互模式运行容器并为容器重新分配一个伪输入终端 -p 端口映射,格式为:主机(宿主)端口:容器端口 ,含义是将服务器中的80端口映射到容器中的8080,当我们访问80端口时,会访问到容器的8080端口。最后的就是我们刚刚创建的镜像名称

如果指定了暴露端口但是仍旧无法使用时,可以换用如下指令。

docker run -it --network=host demo

其他用法

在使用docker run命令启动容器的时候,可以通过--net参数来指定容器的网络配置。

有5个可选值bridge、none、container、host和用户定义的网络:

--net=bridge:默认值,在Docker网桥docker0上为容器创建新的网络栈。

--net=none:让Docker将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自行进行配置。

--net=container:NAME_or_ID:让Docker将新建容器的进程放到一个已存在容器的网络栈中,新容器进程有自己的文件系统、进程列表和资源限制,但会和已存在的容器共享IP地址和端口等网络资源,两者进程可以直接通过lo环回接口通信。

--net=host:告诉Docker不要将容器网络放到隔离的命名空间中,即不要容器化容器内的网络。此时容器使用本地主机的网络,它拥有完全的本地主机接口访问权限。容器进程可以跟主机其他root进程一样打开低范围的端口,可以访问本地网络服务,比如D-bus,还可以让容器做一些影响整个主机系统的事情,比如重启主机。因此使用这个选项的时候要非常小心。如果进一步的使用--privileged=true参数,容器甚至会被允许直接配置主机的网络栈。

--net=user_defined_network:用户自行用network相关命令创建一个网络,通过这种方式将容器连接到指定的已创建网络上去。

查看运行中的镜像

docker ps

在Docker中部署Mysql可参看

https://blog.csdn.net/dhaiuda/article/details/82228186

 

其他案例参考:

https://www.jianshu.com/p/397929dbc27d

https://www.jianshu.com/p/d998dc9d9685

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值