安装docker

1. 建立仓库

  • 移除已安装的docker(docker以前被称为docker或者docker-enginer现在称为docker-ce)

    apt-get remove docker docker-engine docker.io docker-ce
    rm -rf /var/lib/docker/
    rm -rf /etc/docker/
  • 更新APT包

    sudo apt-get update
  • 安装包以允许APT在HTTPS上使用存储库

    sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
  • 配置阿里云的apt源

    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
    sudo add-apt-repository \
    "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian \
    $(lsb_release -cs) \
    stable"

2. 安装docker ce

  • 更新APT包

    sudo apt-get update
  • 安装最新的docker ce

    sudo apt-get install docker-ce
  • 如果需要安装特定版本的docker ce

    apt-cache madison docker-ce #查看可安装版本
    sudo apt-get install docker-ce=<VERSION_STRING> #替代值为第二列的版本号

3. 检查docker安装结果

  • 查看docker状态启动结果,Active为active(running)状态

    systemctl status docker.service 
  • 可能出现安装失败,active状态为stop,通过查看/var/log/daemon.log,日志:Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network,解决方法:

    apt-get install bridge-utils
    brctl addbr docker0
    ifconfig docker0 192.168.2.1
    echo 'DOCKER_OPTS="b=docker0"' >> /etc/default/docker
  • 通过hello-world镜像来验证docker是否安装成功,如果下图所示即为安装成功

    docker run hello-world

制作简易SpringBoot工程镜像

1. 新建springboot工程

  • 添加相关pom依赖后,创建HelloController便携代码:

    @RestController
    public class HelloController { @GetMapping("/hello")
    @ResponseBody
    public String hello(String name) {
    return "Hello world!";
    }
    }
  • pom中配置maven插件后,通过mvn命令导出jar,导出文件在工程的target目录中:

    mvn clean package

2. 制作镜像

  • 创建Dockerfile,最好是空目录,注意文件大小写

    touch Dockerfile
    #Dockerfile的内容
    #指定基础镜像
    FROM openjdk:
    RUN apt-get update \
    #安装基础工具
    && apt-get install -y --no-install-recommends locales net-tools iputils-ping curl wget telnet vim tzdata \
    #设置语言环境
    && locale-gen en_US.UTF- \
    #设置时区,docker中默认使用UTC时间
    && echo "Asia/Shanghai" > /etc/timezone \
    && rm /etc/localtime \
    #重新配置tzdata软件包,使得时区设置生效
    && dpkg-reconfigure -f noninteractive tzdata #指定维护者信息,可不写
    MAINTAINER yehx @qq.com
    #容器工作目录,run -it进入docker后CD进入改目录
    WORKDIR /app
    #指定标签信息,可不写
    LABEL app="springboot-helloworld" version="1.0" by="yehx"
    #COPY工程的jar文件,会自动解压
    ADD ../springboot-helloworld-1.0-SNAPSHOT.jar ./
    #打开某个端口
    EXPOSE
    #容器启动后需要执行的命令
    CMD java -jar springboot-helloworld-1.0-SNAPSHOT.jar
  • 制作镜像(最后. 代表当前路径)

    docker build -t springboot-helloworld:1.0 .

3. 检查镜像

  • 查看镜像,可以看到刚刚制作好的镜像文件

    docker images
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    springboot-helloworld 1.0 7484da556931 hours ago 660MB
  • 运行镜像

    #-p 8181:8181指定端口映射,让外部也可以访问这些应用,如果不用-p,可以通过--network host,将container与宿主机的网络相连通
    #--name指定运行后的容器名称
    #-d
    docker run -d -p : --name springboot-helloworld springboot-helloworld:1.0
    CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
    833c1354f668 springboot-helloworld:1.0 "/bin/sh -c 'java -j…" hours ago Up hours 0.0.0.0:->/tcp springboot-helloworld
  • 查看镜像运行日志

    docker logs -f 833c1354f668

     

  • 访问/hello接口

Docker Hub

目前Docker官方维护了一个公共仓库叫Docker Hub,大部分需求都可以通过在Docker Hub中直接下载镜像来实现,并可以上传自己的镜像文件。

1. 基本使用

    • 注册:在 https://cloud.docker.com 免费注册一个 Docker 账号
    • 登录:通过执行 docker login 命令交互式的输入用户名及密码来完成在命令行界面登录Docker Hub
    • 查询镜像:通过 docker search 命令来查找官方仓库中的镜像

    • 拉取镜像:利用 docker pull 命令来将它下载到本地

    • 推送镜像:可以在登录后通过 docker push 命令来将自己的镜像推送到 Docker Hub

      这边需要注意的是,推送前需要通过docker tag命令将镜像重新打标签,如果Docker Hub的账号用户名为usernamme,则新镜像名为username/[old-image]

Docker安装(Debian8)-构建简单的SpringBoot应用的更多相关文章

  1. RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot【1.5w字保姆级教学】

    @ 目录 一.前言 二.RabbitMQ作用 1. 异步处理 2. 应用解耦 3. 流量控制 三.RabbitMQ概念 1. RabbitMQ简介 2. 核心概念 四.JMS与AMQP比较 五.Rab ...

  2. jumpserver跳板机docker安装小小趟坑

    最近日常运维的时候发现每次登陆服务器都要打开终端目录连接对应的服务器,闲暇的时候还好,运维任务很重的时候才发现这样的玩法很傻,浪费时间且一点儿都跟不上潮流,然后打开githup开始搞起来.docker ...

  3. Caffe学习系列(三)Docker安装及一些问题的记录

    前言: Docker安装倒是很简单,按照步骤轻松完成,但是在联网方面还是出现问题,大概是伟大的祖国防火墙将其拦下,但在开发中要遇山开山,见水搭桥.在其中我将解决方法记录下来,每次解决了困难想分享找不到 ...

  4. 小白的docker极简入门(二)、5分钟教你玩转docker安装

    0-前言 上一篇中,我们已经安装后Linux了,我们需要在Linux下安装docker,然后才能在docker中安装和部署各种应用 同样,5分钟教你完成docker正确安装和使用, 不是纸上谈兵,不是 ...

  5. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  6. win10安装docker并结合Idea2018.1部署springboot项目

    一.准备工作 1..工具:win10,idea2018,maven3.5,jdk8 二.win10安装docker 1.win10安装docker:http://www.runoob.com/dock ...

  7. springboot学习之构建简单项目搭建

    概述 相信对于Java开发者而言,spring和springMvc两个框架一定不陌生,这两个框架需要我们手动配置的地方非常多,各种的xml文件,properties文件,构建一个项目还是挺复杂的,在这 ...

  8. SpringBoot Docker Mysql安装,Docker安装Mysql

    SpringBoot Docker Mysql安装,Docker安装Mysql ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...

  9. SpringBoot Docker入门,SpringBoot Docker安装

    SpringBoot Docker入门,SpringBoot Docker安装 ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...

随机推荐

  1. dataTables分页实现两个前提

    ., 'desc' ]]}); .数据结构

  2. [SoapUI] 检查测试步骤的类型或者或者某种特定类型的步骤列表

    SoapUI Groovy : Check if test step is of specific type, such as : Wsdl, Rest, Jdbc, HTTP, Groovy etc ...

  3. [solution] JZOJ 5459. 密室

    [solution] JZOJ 5459. 密室 Description 小X 正困在一个密室里,他希望尽快逃出密室. 密室中有$N$ 个房间,初始时,小X 在1 号房间,而出口在N 号房间. 密室的 ...

  4. modbus转乐鑫物联网平台上传工具

    乐鑫平台推荐个人用户使用 界面比较简洁

  5. List 接口中ArrayList Vector LinkedList 比较

    访问权限Arryist最快 其次Vector  最慢LinkedList

  6. 20155326刘美岑 Exp6 信息收集与漏洞扫描

    20155326刘美岑 Exp6 信息收集与漏洞扫描 实验后回答的问题 (1)哪些组织负责DNS,IP的管理. 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地 ...

  7. VIBE(前景检测)

    1.VIBE思想: 为每个像素点存储了一个样本集,样本集中采样值就是该像素点过去的像素值和其邻居点的像素值,然后将每一个新的像素值和样本集进行比较来判断是否属于背景点. 2.VIBE模型初始化 通用的 ...

  8. 背水一战 Windows 10 (88) - 文件系统: 操作文件夹和文件

    [源码下载] 背水一战 Windows 10 (88) - 文件系统: 操作文件夹和文件 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 创建文件夹,重命名文件夹,删除文件夹, ...

  9. 手写实现简单版IOC

    概述 IOC (Inversion of Control) 控制反转,大家应该都比较熟悉了.应该也都有用过,这里就不具体介绍了.自己平时也有用到过IOC,但是对它的具体实现原理只有一个模糊的概念,所以 ...

  10. TextView展示富文本时emoj或图片和文字不对齐的解决方案

    在项目中,回复框.聊天界面的显示往往会有emoj或者图片,但是一个比较头疼的问题是,会出现emoj表情或者图片和文字的位置不对齐,总是有偏移,这样很影响用户体验的.下面会总结一下如何解决这个问题. 本 ...