Docker安装(Debian8)-构建简单的SpringBoot应用
安装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应用的更多相关文章
- RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot【1.5w字保姆级教学】
@ 目录 一.前言 二.RabbitMQ作用 1. 异步处理 2. 应用解耦 3. 流量控制 三.RabbitMQ概念 1. RabbitMQ简介 2. 核心概念 四.JMS与AMQP比较 五.Rab ...
- jumpserver跳板机docker安装小小趟坑
最近日常运维的时候发现每次登陆服务器都要打开终端目录连接对应的服务器,闲暇的时候还好,运维任务很重的时候才发现这样的玩法很傻,浪费时间且一点儿都跟不上潮流,然后打开githup开始搞起来.docker ...
- Caffe学习系列(三)Docker安装及一些问题的记录
前言: Docker安装倒是很简单,按照步骤轻松完成,但是在联网方面还是出现问题,大概是伟大的祖国防火墙将其拦下,但在开发中要遇山开山,见水搭桥.在其中我将解决方法记录下来,每次解决了困难想分享找不到 ...
- 小白的docker极简入门(二)、5分钟教你玩转docker安装
0-前言 上一篇中,我们已经安装后Linux了,我们需要在Linux下安装docker,然后才能在docker中安装和部署各种应用 同样,5分钟教你完成docker正确安装和使用, 不是纸上谈兵,不是 ...
- Docker构建YApi镜像, Docker安装YApi, Docker部署YApi
概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...
- win10安装docker并结合Idea2018.1部署springboot项目
一.准备工作 1..工具:win10,idea2018,maven3.5,jdk8 二.win10安装docker 1.win10安装docker:http://www.runoob.com/dock ...
- springboot学习之构建简单项目搭建
概述 相信对于Java开发者而言,spring和springMvc两个框架一定不陌生,这两个框架需要我们手动配置的地方非常多,各种的xml文件,properties文件,构建一个项目还是挺复杂的,在这 ...
- SpringBoot Docker Mysql安装,Docker安装Mysql
SpringBoot Docker Mysql安装,Docker安装Mysql ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...
- SpringBoot Docker入门,SpringBoot Docker安装
SpringBoot Docker入门,SpringBoot Docker安装 ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...
随机推荐
- [JAVA]JAVA章3 如何获取及查看DUMP文件
一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...
- 2019.02.17 spoj Query on a tree VI(链分治)
传送门 题意简述:给你一棵nnn个黑白点的树,支持改一个点的颜色,询问跟某个点颜色相同的连通块大小. 思路: 还是链分治 233 记fi,0/1f_{i,0/1}fi,0/1表示iii的所有颜色为0 ...
- python绝技-运用python成为顶级黑客源代码
链接:https://pan.baidu.com/s/1xUV60WoDtiSCywaQ_jV2iQ 密码:7sz3 学习资料就应该是免费了的,我也不懂那些收钱的人是怎么想的(小声bb)
- verilog 有符号数(2转)
在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合:也可以使用有符号数,即包括0和正负数的集合.在更加复杂的系统中,也许这两种类型的数,我们都会用到. 有符号数通常以2的补码形式 ...
- 可遇不可求的Question之导入mysql中文乱码解决方法篇
可遇不可求的Question之导入mysql中文乱码解决方法篇 先 set names utf8;然后 source c:\1.sql ?
- java技术突破要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- BASH 正则表达式和文本处理工具
本节内容 1. 什么是正则 2. grep 3. sed 4. awk 5. 其他补充 一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方 ...
- samba服务配置(二)
需求: 某公司销售部门提出一个文件共享需求,要求部门共享目录有三个,第一个共享目录所有销售部门人员都具有可读可写权限: 第二个共享目录所有销售人员只读权限,经理级别的销售人员具有可读可写权限:第三个共 ...
- Android-Java-饿汉式单例模式(内存图)
描述Single对象: package android.java.oop14; public class Single { // 默认构造方法 私有化 不让外界调用 private Single() ...
- 机器学习之KNN算法
1 KNN算法 1.1 KNN算法简介 KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属 ...