Docker化的java应用

Posted 冯俊杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker化的java应用相关的知识,希望对你有一定的参考价值。

什么是docker

docker历史

 2010 dotCloud PAAS

    2013 docker开源

    2014.6 Docker1.0

Docker is the world\'s leading software containerization platform.

Docker公司开发,开源,托管在github

 

Docker思想

  集装箱

  标准化:运输方式、存储方式、API接口

  隔离

Docker解决了什么问题

  docker解决了运行环境不一致所带来的问题

     docker标准化,让快速扩展、弹性伸缩变得简单

Docker核心技术

 镜像 仓库 容器 

 Build:构建镜像

 Ship:运输镜像,从仓库和主机上运输

 Run:运行镜像,就是一个容器

 

Docker镜像

联合文件系统,分层的概念 实现的文件存储,每一层文件是只读的

 

Docker容器

容器的本质就是一个进程

最上面的一层是可写的文件系统,镜像每一层都是只读的。在写镜像文件的时候会把镜像文件拷到容器最上层,然后再对它进行修改。应用读文件的时候会从顶层开始查找,如果没有才会找下一层。

Docker仓库

中央服务器

  hub.docker.com

  c.163.com

Windows安装Docker

 在windows系统中Docker目前仅有win10专业版和企业版的安装包,win7/win8/win10家庭版需要通过docker toolbox来安装。

 下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

 Linux 安装Docker

  Redhat & Centos

    系统要求:64-bit OS and version 3.10

    安装教程:https://www.imooc.com/article/16448

  Ubuntu

    系统要求:64-bit OS and version 3.10

    1.apt-get update

    2.apt-get install -y docker.io 系统自带

     curl -s https://get.docker.com|sh   最新版本
    3.docker version

    4.service docker start

Docker初体验

  第一个docker镜像

    docker pull [OPTIONS] NAME [:TAG]    ---拉取i镜像

      TAG版本的意思,不填默认最新版本 

    docker images [OPTIONS] [REPOSITORY[:TAG]]   ---查看本机镜像

      REPOSITORY:镜像名称

    操作

      docker pull hello-world

      docker images

  第一个docker容器

     docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]

      COMMAND:镜像运行起来要执行什么命令

      ARG...:命令运行所需参数

     To generate this message, Docker took the following steps:
      1. The Docker client contacted the Docker daemon.
      2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)
      3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
      4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

 

Docker运行nginx

  实践前奏

    持久运行的容器

    前台挂起&后台运行

    进入容器内部

  网易镜像中心:https://c.163yun.com/hub#/home

    拉取镜像:docker pull hub.c.163.com/library/nginx:latest

    运行镜像:docker run hub.c.163.com/library/nginx  --前台运行

         docker run -d hub.c.163.com/library/nginx  --后台运行

         docker run --help  --查看参数

    进入容器内部:docker exec -it b22 bash

           docker exec -- help

           docker ps   ---产看当前主机运行的docker容器

  docker网络

     网络类型   namespace--network namespace

      Bridge   Host  None

    端口映射

 

映射命令

    docker run 

      -p, --publish list Publish a container\'s port(s) to the host
      -P, --publish-all Publish all exposed ports to random ports

    docker run -d -p 8080:80 hub.c.163.com/library/nginx

  windows 端口映射查询IP命令: docker-machine ip default

    docker run -d -P hub.c.163.com/library/nginx

第一个Java Web应用

  Dockerfile

  docker build

  Jpress:http://jpress.io

 

下载Jpress war包

下载tomcat镜像

docker pull hub.c.163.com/library/tomcat:latest

 

Dockerfile

docker build .

docker build -t jepress:latest .

docker run -d -p 8888:8080 jpress

docker run -d -p 3306:3306 -e mysql_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest

上传网易镜像仓库参考:https://www.163yun.com/help/documents/15587826830438400

以上是关于Docker化的java应用的主要内容,如果未能解决你的问题,请参考以下文章

当当网Docker应用实践

如何 10 步 Docker 化一个应用?

在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速

使用Jib插件高效部署容器化的SpringBoot应用

Docker实战系列——第四话-- 将你的spring-boot应用进行容器化的几种常见玩法

Docker实战系列——第四话-- 将你的spring-boot应用进行容器化的几种常见玩法