安装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. 游戏脚本编程 文本token解析

    一个数字的组成由以下几个字符 正负号 + -   小数点 .   数字 0-9 比如 3 -3 3.13 -34.2234 但是符号和小数点不会出现多次 那么识别流程用图来表示 则是 整数 浮点数 一 ...

  2. 《C#从现象到本质》读书笔记(九)第11章C#的数据结构

    <C#从现象到本质>读书笔记(九)第11章C#的数据结构 C#中的数据结构可以分为两类:非泛型数据结构和泛型数据结构. 通常迭代器接口需要实现的方法有:1)hasNext,是否还有下一个元 ...

  3. AX_Currency

    Currency::curAmount(9.23,"HKD");  Currency::curAmount2CurAmount(9.23,"RMB"," ...

  4. [C#.net]将null值插入SQL Server的Datetime

    之前处理SQL Server可以为空时间字段总是设置时间的最小值和最大值,今天才发现也可以把null用C#的代码插入到sql内 使用可空的值类型,代码如下 public DateTime? Servi ...

  5. ABP框架系列之二十九:(Hangfire-Integration-延迟集成)

    Introduction Hangfire is a compherensive background job manager. You can integrate ASP.NET Boilerpla ...

  6. 可在广域网部署运行的即时通讯系统 -- GGTalk总览(附源码下载)

      (最新版本:V6.2,2019.01.03 .Xamarin移动端版本已经推出,包括 Android 和 iOS) GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网, ...

  7. Redis 学习笔记(十二)Redis 复制功能详解 ----- (error) READONLY You can't write against a read only slave

    Redis 复制(Replication)1. 复制介绍分布式数据库为了获取更大的存储容量和更高的并发访问量,会将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上.Redis为了解决 ...

  8. Javascript百学不厌 - 尾递归

    虽然偶尔也用过,但是从来没具体来整理过 普通递归: function fac(n) { ) ; ); } fac() 这是个阶乘.但是占用内存,因为: fac(5) (5*fac(4)) (5*(4* ...

  9. Java学习笔记51(综合项目:家庭记账系统)

    javaEE的开发模式 1.什么是模式 模式在开发过程中总结出的“套路”,总结出的一套约定俗成的设计模式 2.javaEE经历的模式 model1模式: 技术组成:jsp+javaBean model ...

  10. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置

    1.OpenStack示例的架构介绍 1.1 各节点介绍 (1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板. ...