牛创老王
|
什么是Docker说实话关于Docker是什么并太好说,下面我通过四点向你说明Docker到底是个什么东西。
为什么要用Docker
更多的Docker介绍大家可以参考下这篇文章: https://juejin.im/post/5b260ec26fb9a00e8e4b031a Docker安装docker安装请下载docker桌面版本,安装即可,请参考: https://www.docker.com/products/docker-desktop 下面来看看如何将服务端和客户端与Docker部署集成。
现将服务端的源码导入到IDEA或者Eclipse中,这里会以IDEA来例子来进行说明。
1. 新建Dockerfile
2.编辑Dockerfile内容
FROM java:8
WORKDIR /app #拷贝文件到容器 ADD target/LuckyFrameWeb.jar /app/app.jar
EXPOSE 80
ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar" ]
WORKDIR /app 指定docker打包之后镜像的运行目录,可以根据需求自行自定目录 ADD target/LuckyFrameWeb.jar /app/app.jar 将当前项目build好之后的jar包 拷贝到容器指定目录下 EXPOSE 80 将容器的80端口暴露出去,以方便和主机连接 ENV和ENTRYPOINT 是设置运行环境和指定容器的运行入口。当我们拿到LuckyFrameWeb.jar包的时候,可以直接执行java -jar LuckyFrameWeb.jar 来启动项目,但是在容器中,已经将 LuckyFrameWeb.jar 修改成名称为app.jar了,所在在容器中以java -jar app.jar来启动项目。
3. 构建Docker image 在build image的时候,请确保你所有的源代码或者配置都已经修改完毕了,这个时候最重要的一点来了, 你需要重新rebuild你的项目,这样才能保证你打包出来的docker镜像集成了你最新的代码和配置。 如果你是用的IDEA,可以执行在maven选项卡中先执行clean操作,然后再执行package操作即可
这样就能保证在target/classes目录下是最新的资源了。接下来进行构建docker镜像的操作。 执行docker镜像构建操作请确保你的dockerfile存在并且内容没有语法或者逻辑错误。 然后打开终端或者CMD窗口,进入到当前项目所在的更目录,执行以下命令:
docker build -t autotest . --rm -t 以“name:tag”格式命名和选择标记,其中name就是auotest,不指定tag就是latest . 表示当前目录下 --rm 表示如果之前存在这个镜像则删除 当执行命令之后会得到以下输出,就证明镜像打包成功
然后 我们在终端输入 docker image ls 查看,会显示以下镜像
启动docker 镜像 执行以下命令:
docker run -p 80:80 -d --rm autotest:latest -p 80:80 指的是 将docker容器的80端口映射成主机的80端口上,这样输入主机IP可以直接访问web端 -d 表示后台运行 --rm 表示如果当前如果之前容器正在运行,则删除 autotest:latest 其中的autotest是镜像的名称,tag就是latest,当然这里也可以将 autotest:latest 更改为image id。
启动之后, 执行docker ps命令: 如果有类似0.0.0.0:80->80/tcp就证明你这个容器已经启动了,然后在浏览器输入http://服务器IP 查看是否打开了luckyframeweb的登录界面 如果看见了 证明你已经完成了对luckyframeweb docker容器的部署
|
stacey
|
用docker部署后,客户端如何连接呢?
|
stacey
|
原帖由 stacey 于 2020-03-03 15:35:32 发表
用docker部署后,客户端如何连接呢? 3.2-beta以上版本已修复 |