Docker 部署微服务

1、微服务打包成 jar 包

(1)使用 maven 进行打包
在这里插入图片描述
(2)生成的 jar 包位于 taget 目录下
在这里插入图片描述

2、编写 Dockerfile 文件

FROM java:8
VOLUME /tmp
ADD microservice-provider-user-0.0.1-SNAPSHOT.jar /microservice-provider-user.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/microservice-provider-user.jar"]

Dockerfile 文件命令解析:
FROM:为映像文件构建指定基础映像,指定的基础镜像可以是官方远程仓库中的,也可以是位于本地仓库,默认情况下现在docker本机仓库寻找,找不到则从官方远程仓库拉取。本文件指定了继承于一个带有 java8 环境的镜像,新的镜像会以这个环境为基础进行拓展。
在这里插入图片描述
ADD:复制指定的< src>到容器中的< dest>,其中< src> 可以是 Dockerfile 所在目录的一个相对路径(文件或目录),也可以是一个URL。ADD命令在引入压缩包文件时,会自动解压到镜像中,然后删掉压缩包,不需要再执行解压命令,这时候SpringBoot的相关文件已经引入到镜像。
在这里插入图片描述
< dest>路径的填写可以是容器内的绝对路径,也可以是相对于工作目录的相对路径
< src>可以是一个本地文件或者是一个本地压缩文件(可以是Dockerfile所在目录的一个相对路径),还可以是一个url
VOLUME
用于指定持久化目录,实现挂载功能,授权访问从容器内到主机上的目录。用于containers之间共享数据,将本地文件夹或者其他容器中的文件夹挂在到这个容器中等。
在这里插入图片描述
容器使用的是AUFS,这种文件系统不能持久化数据,当容器关闭后,所有的更改都会丢失,所以当数据需要持久化时用这个命令。
一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统
卷可以容器间共享和重用 可以关注参数 --volumes-from
容器并不一定要和其它容器共享卷
修改卷后会立即生效
对卷的修改不会对镜像产生影响
卷会一直存在,直到没有任何容器在使用它
ENTRYPOINT
启动时的默认命令,配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序。同时也意味着该镜像每次被调用时仅能运行指定的应用。ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,指定多个时靠后的设置会覆盖前面的设置,而只执行最后的ENTRYPOINT指令
在这里插入图片描述
EXPOSE
指定于外界交互的端口,即容器在运行时监听的端口
在这里插入图片描述
EXPOSE并不会让容器的端口访问到主机。要使其可访问,需要在docker run运行容器时通过-p来发布这些端口,或通过-P参数来发布EXPOSE导出的所有端口
默认是TCP

3、将打包好的 jar 包和 Dockerfile 文件放在同一目录下

将 jar 包和 Dockerfile 文件都放在Linux服务器的 /home/lhj/weifuwu/ 目录下
在这里插入图片描述

4、创建镜像

(1)构建构建,首先 cd 到刚才 Dockerfile 文件的目录下
在这里插入图片描述
(2)然后执行以下命令来构建镜像

sudo docker build -t="test/mico_service" .

-t参数用来指定生成docker镜像的仓库和镜像名,test为仓库名(可以省略),/后为镜像名,命令时不能使用大写字母最后面的点来指定Dockerfile的位置,因为已经cd到当前目录了,所以写点“.”即可

在这里插入图片描述
(3)docker images 查看所有镜像
在这里插入图片描述

5、启动镜像,构建实例

sudo docker run -d -p 8080:80 --name mymico test/mico_service

-d参数表明启动镜像作为一个守护进程,在后台一直运行,-p用来指定镜像的端口映射,如上就是将docker容器的80端口映射到主机的8080端口,–name来指定启动容器的名称,后面的第一个参数为镜像名称,最后面的参数就是实例容器仓库名/实例容器名

在这里插入图片描述

6、浏览器访问

在这里插入图片描述
能够正常访问。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值