徐雷 frank 2019-03-06 23:09:32 浏览 41 评论 0
架构
java
docker
阿里云
spring
镜像
hub
Boot
仓库
2.0
DockerHub
摘要: 大规模集群快速部署 Java 应用, 需要制作 Docker 镜像, 本次课程详细介绍如何制作 Java 程序的 Docker 镜像文件, 深入解析 DockerFile 核心参数, 以及实践演练把我们制作的 Docker 镜像推送到 DockerHub 仓库, 国内可以使用阿里云 Docker 仓库加速, 以及安全保护机制.
内容摘要: 大规模集群快速部署 Java 应用, 需要制作 Docker 镜像, 本次课程详细介绍如何制作 Java 程序的 Docker 镜像文件, 深入解析 DockerFile 核心参数, 以及实践演练把我们制作的 Docker 镜像推送到 DockerHub 仓库, 国内可以使用阿里云 Docker 仓库加速, 以及安全保护机制.
今天我们都来实战 Java Spring Boot 2.0, 制作 Java Docker 镜像, 然后推送到 DockerHub 和阿里云 Docker 仓库, 推送到公共镜像仓库的原因是便于后期大规模服务器集群部署.
1,Docker 安装
如果你不熟悉安装, 可以参考这个文章 《Java Spring Boot 2.0 实战 Docker 容器与架构原理, 视频与课件, 基于 Linux 环境》https://yq.aliyun.com/articles/691596
Mac 可以参考《Mac OS 安装 Docker 容器的 3 种方式与差别: Docker for Mac》https://yq.aliyun.com/articles/692030
2, 创建 Java 程序, 为了制作 Docker 镜像
这里我们就使用最原始的 Java 代码, 编写一个 HelloWorld 的例子.
基于 Maven 构建 Spring Boot 2.0 镜像文件, 可以参考前面文章.
非常简单的 Java 代码, 输出字符串信息. 可以使用 Eclipse 工具编写.
保存为 JavaDocker.java 文件.
3, 制作 Java 原始的 Docker 镜像
这里还没有使用 maven 项目, Maven 有 Docker 插件, 可以更方便的构建镜像. 上一篇文章里讲过了.
docker build -t java-docker-demo .
会看到日志信息
- Sending build context to Docker daemon 3.072kB
- Step 1/5 : FROM java:8
- ---> d23bdf5b1b1b
- Step 2/5 : COPY . /var/test/java
- ---> Using cache
- ---> b21b800e13a1
- Step 3/5 : WORKDIR /var/test/java
- ---> Using cache
- ---> 1926e9870140
Step 4/5 : RUN javac JavaDocker.java
- ---> Using cache
- ---> 8fad6e1451df
- Step 5/5 : CMD ["java", "JavaDocker"]
- ---> Using cache
- ---> 0d18c8ddf582
- Successfully built 0d18c8ddf582
- Successfully tagged java-docker-hello-world:latest
Docker 会生产一个镜像文件. docker images 查看镜像信息
4, 注册 DockerHub 或者阿里云 Docker 仓库
国外可以在 DockerHub 注册镜像仓库, https://hub.docker.com/ .
国内可以选择阿里云 Docker 仓库 https://cr.console.aliyun.com,
都是免费的服务器, 阿里云和 Docker 官方合作, 公益事业, 同步官方的全部镜像, 免费给国内开发者使用.
企业在国内大规模部署 Docker 镜像服务器是不错的选择.
创建仓库, 并指定命令空间, 后面向某个仓库提交镜像, 实际里面很多官方镜像, 我们可以直接搜索下载, 也可以自己提交镜像.
5, 推送镜像到 DockerHub 或者阿里云 Docker 仓库
在仓库创建完成以后, 可以在本地推送制作好的镜像了.
第一次连接 DockerHub 或者阿里云 Docker 仓库, 都需要登陆 Login, 输入一次用户名和密码即可, 缓存起来. Mac 版本的 Docker 一样的.
我们这里使用的是 Linux 环境作为测试.
sudo docker push frankxulei/alibaba-java-docker-demo
显示已经推送完成.
6, 登陆 DockerHub 查看镜像是否成功
DockerHub 网页版进入镜像仓库, 可以看到刚才推送的镜像文件.
可以看到我们推送的镜像已经进入了 DockerHub 镜像仓库.
进行大规模部署的时候, 每个服务器上的 Docker 客户端可以搜索我们的镜像, 然后执行下载和运行命令. 就可以实现快速大规模部署工作.
后期我们可以增进 K8S 和 Docker 结合实战的工作.
《第 17 课: Spring Boot 2.0 实战 Docker 容器与架构原理》资料:
视频: https://yq.aliyun.com/live/880
PPT:https://yq.aliyun.com/live/880
《第 18 课: Java 实战制作 Docker 镜像并推送到 DockerHub 与阿里云镜像仓库》资料:
视频: https://yq.aliyun.com/live/906
PPT:https://yq.aliyun.com/live/906
阿里巴巴 Java 群超过 3000 人
直播地址: Java 技术进阶群
进群方式: 钉钉扫码入群
阿里巴巴 MongoDB 群
来源: https://yq.aliyun.com/articles/692651