你用docker做过什么好玩或者有逼格的事情?

admin 814 0

1. 问题描述

你用docker做过什么好玩或者有逼格的事情?

问题结论

docker较底层的docker安装、镜像构建、容器编排、容器发布等,还是刚开始参加工作那2年接触过,至今已3年多时间。互联网公司中,除了基础运维团队,其他研发看到的都是集成的开发环境,晓得底层用的docker或者k8s,但就使用者而言,在网站工具上部署、发布、上线,一个新的镜像部署完成。至于底层如果交互和编排,鬼晓得。基于此,我就简单说说当年基于 docker 的 war 包部署和 jar 包部署,仅供参考。

2. 简述 docker 部署示例

2.1 docker 的使用场景

  • 让应用快速打包与容易自动化部署
  • 创建轻量、私密的 PAAS 环境
  • 实现自动化测试和持续的集成/部署

2.2 war 包部署示例

# 编写 Dockerfile 文件

from tomcat:latest

MAINTAINER sunzc #作者

COPY demo.war /usr/local/tomcat/webapps #放置到tomcat的webapps目录下


# 生成 war 包镜像命令

$ docker build -t demo:v1 . # (. 代表Dockerfile文件所在的路径)


# 启动容器

docker run --name demo -p 8080:8080 -v /home/logs/demo/:/home/logs/demo/ -e TZ=Asia/Shanghai -e spring.profiles.active=local --restart=always -d demo:v1


2.3 jar 包部署示例

# 编写 Dockerfile 文件

FROM keensoft/centos7-java8

MAINTAINER sunzc

# set timezone to PRC

ENV TZ="Asia/Shanghai" LANG=en_US.UTF-8 PRO_ENV="prod"

ADD demo.jar /home/App.jar

ENTRYPOINT java -jar /home/App.jar


# 编写start.sh文件,用于启动jar程序,并且镜像启动后执行

java -jar /home/App.jar


# 生成 jar 包镜像命令

docker build -t demo:v1 .


# 启动容器

docker run --name demo -p 8080:8080 -v -v /home/logs/demo/:/home/logs/demo/ -e TZ=Asia/Shanghai -e spring.profiles.active=local --restart=always -d demo:v1


3. 小结

3.1 Docker特性

  • 隔离性:libcontainer(默认容器)=>内核命名空间。
  • 安全性:内部(cgroups)| 容器和宿主主机(内核能力机制)。
  • 可度量性:cgroups(控制组)→资源度量和分配(用户)。
  • 移植性:AUFS(快速更新)→层的概念。

3.2 Docker优点(比较LXC)

  • 跨平台可移植性:按统一标准打包(镜像中),可传播。
  • 面向应用:优化部署应用(设计哲学)→API,接口及文档(体现)。
  • 版本控制:追踪、查询、记录版本信息(应用程序更改史)和回滚版本等。
  • 组件复用:组件式搭建(基础镜像)→Python(运行环境) | postgreasql(基础镜像)。
  • 共享性:公共的注册服务器(可免费下载源码)。

作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。

标签: #docker