主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等。

我用的电脑是mac,本身并不支持docker,需要安装Docker ToolBox才能使用Docker。由于大部分情况下线上服务器都是linux,所以这里先以linux下Docker的使用为例,后面再讲在mac上部署Docker。我购买了一个阿里云的云服务器CentOS7.2,以此为例,如果在购买时就在阿里云镜像市场选择了带Docker的系统版本,就可以不用看安装Docker的步骤了。

Linux使用Docker

1 下载安装Docker

首先通过SSH连接云服务器,使用yum install docker即可,安装完成后启动service docker start,可以将docker加入开机启动chkconfig docker on。然后就可以使用docker了,首先试试docker version吧。
(推荐)如果下载docker很慢,我们可以使用DaoCloud提供的镜像站点加速。http://get.daocloud.io/
安装docker:
curl -sSL https://get.daocloud.io/docker | sh

如果是正常联网的云服务器或PC,执行完上面命令后就会开始下载安装了,过一段时间后成功会显示如下界面


使用下面的方式,它会自动配置一些信息,比手工下载docker并配置来的更方便。

2 配置docker加速器

由于很多镜像在国内下载起来很慢,DaoCloud提供了镜像加速器来进行加速

配置 Docker 加速器

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://cc4f263c.m.daocloud.ioCopy

该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。


我们将上面的命令粘贴到云服务器命令行,执行后重启docker即可。



3 下载个镜像试试

docker官方有很多镜像,譬如Ubuntu、mysql、Tomcat之类的,国内也有很多镜像市场提供了各种各样的镜像。譬如DaoCloud镜像市场,网易蜂巢等,国内的镜像市场下载速度相对快一些。
我们下载个镜像来试试。
docker pull tomcat


通过docker images可以看到已经下载完了Tomcat镜像,下面启动它。
docker run -d -p 8080:8080 tomcat

基础命令网上多的是,就不解释了。

然后用ip:8080访问Tomcat看看效果,如果访问不到请先看看服务器的安全组策略,是否开放了相应端口。因为默认只开启了22端口,别的端口可能需要手工开启。


4 Springboot部署到docker及运行

DaoCloud也有个例子可供参考:http://guide.daocloud.io/dcs/docker-java-spring-boot-9153934.html
由于我们要演示SpringBoot部署到docker,所以我们需要一个包含了maven和java的镜像,当然也可以选择直接安装一个Ubuntu之类的系统再安装java。
这样的镜像有很多,官方的有maven:3-jdk-8     maven:3.3.3 这些都是带着maven和Java的,已经可以用来跑Springboot项目了。不过我后来找到了一个速度更快的,而且maven依赖的是阿里云maven的,众所周知,官方maven速度极慢,一般用阿里云的maven。

docker pull hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8 

这个是maven+java8的镜像,而且来自网易蜂巢,速度快。改自maven官方镜像,里面的maven更改为了阿里云的,下载maven更快。
平时大家需要什么镜像时,最好先到国内的这些镜像市场看看,常用的基本都有人配好了,下载快很多。

下载完上面的镜像后,我们就来构建一个Springboot项目,添加Dockerfile文件到根目录。我直接在本地创建项目,添加一个简单的Controller。

@RestController
public class DockerDemoSpringBootApplication {

    public static void main(String[] args) {
        SpringApplication.run(DockerDemoSpringBootApplication.class, args);
    }

    @RequestMapping("")
    public String hello(){
        return "Hello! Docker!";
    }
}
 

Dockerfile:

FROM hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8

ADD pom.xml /tmp/build/

ADD src /tmp/build/src
        #构建应用
RUN cd /tmp/build && mvn clean package \
        #拷贝编译结果到指定目录
        && mv target/*.jar /app.jar \
        #清理编译痕迹
        && cd / && rm -rf /tmp/build

VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

然后通过ftp工具上传到云服务器,我使用的filezilla,主机填写服务器ip,用户名root,密码是服务器密码,连接后即可传文件给云服务器了




我们把本地创建好的项目上传上去。然后在服务器命令行,进入项目根目录,并执行docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。

-t代表要构建的镜像的tag,.代表当前目录,也就是Dockerfile所在的目录。
然后就可以看到在下载各种依赖的maven、各种jar,构建完毕后,启动项目。



我们可以看到构建完毕的镜像testdocker,启动它,使用8088端口映射程序里默认的8080。
在外部浏览器访问:

这样我们就成功部署了一个Springboot项目了。如果要说,怎么连接数据库,redis之类的,我建议使用云端服务,云redis、云数据库,不建议在docker内安装这些,因为用了docker,多数情况下会启动多个实例,如果每个实例都有自己的数据库、redis,那么数据就无法同步了。

至于如何在mac上和Windows尚搭建本地的docker环境,可以去DaoCloud下载相应的包,http://get.daocloud.io/,安装完后,就有了docker环境了,后续的操作就和上面一样了。
后面我们学习使用Rancher来管理部署docker,就不用手工在命令行去敲命令管理docker了。




mac和linux下使用Docker,部署SpringBoot项目到docker的更多相关文章

  1. docker部署springboot项目

    本文介绍一下docker如何部署springboot项目. 前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfi ...

  2. 超简单的 Docker部署 SpringBoot项目 步骤

    很久之前就用过,一直没有好好写篇博客,今天就总结一下 创建一个 SpringBoot项目 创建一个SpringBoot项目并打成jar包,结构如图 编写 Dockerfile文件 FROM java: ...

  3. IDEA远程快速部署SpringBoot项目到Docker环境

    一:基础准备 1.首先在linux服务器安装Docker环境,具体安装步骤及Docker使用参考官网或网络资料(这里重点是快速部署项目到Docker环境) 2.配置Docker远程连接端口 1.vim ...

  4. springboot(十七)-使用Docker部署springboot项目

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目, ...

  5. Centos8.3、docker部署springboot项目实战记录

    引言    目前k8s很是火热,我也特意买了本书去学习了一下,但是k8s动辄都是成百上千的服务器运维,对只有几台服务器的应用来说使用k8s就有点像大炮打蚊子.只有几台服务器的应用运维使用传统的tomc ...

  6. idea远程部署SpringBoot项目到Docker

    安装docker服务或者系统学习docker参考这篇文档:https://shimo.im/docs/fE0eJCx8IIojQXzB/ 1.配置docker的远程端口 vim /usr/lib/sy ...

  7. Linux安装Jenkins并部署springboot项目

    安装步骤: 1.跳转连接https://pkg.jenkins.io/redhat-stable/下载安装包 2.安装命令: sudo rpm -ih jenkins-2.73.2-1.1.noarc ...

  8. Linux下的环境部署和项目发布

    1.查看系统版本 sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 2.下载对应版本软件,jdk和Tomcat(切记注意版本) jdk: 下载地址:http: ...

  9. docker 部署springboot项目【转载】

    https://www.cnblogs.com/ityouknow/p/8599093.html

随机推荐

  1. Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找 //查找是否存在 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Cre ...

  2. windows10+mysql8.0.zip安装

    〇.准备: MySQL8.0 Windows zip包下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 环 ...

  3. 官方微信接口(全接口) - 微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI

    微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中.微信支付.微信红包.微信卡券.微信小店. 微信开发探讨群 330393916 <?php /**  * Description o ...

  4. ES6 Promise 让异步函数顺序执行

    应用 ES6 的 内置对象 Promise, 让异步函数 按顺序执行的例子 如下: 上边 是四个用Promise 处理过的 异步执行的函数: fn1.fn2.fn3.fn4 下面,让其按顺序执行 如下 ...

  5. json数据结构

    JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合服务器与JavaScript的交互.JSON易于人阅读和编写.同时也易于机器解析和生成.JSON采 ...

  6. dbml 注意事项

    1,修改dbml中的字段,需要修改2个地方

  7. 20145201 实验三 敏捷开发与XP实践

    实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领域:软件需求分析.软件设计. ...

  8. [翻译]PostCSS简介

    许多开发人员花时间在使用CSS的预处理器上如less,sass和stylus.这些工具已经成为Web开发的重要组成部分.写一个网站的样式,不使用嵌套,变量或混入等功能很少见.它们每个都是非常实用的,让 ...

  9. 使用本地JConsole监控远程JVM

    第一阶段 找到了2种配置,是否需要输入密码. 在 catalina.bat 文件新增如下脚本 第一种配置: rem HaoYang Set JAVA_OPTSset JAVA_OPTS=-Xms512 ...

  10. kafka入门使用

    kafka版本0.11.0.1以上自带zookeeper,必须要求环境中有jdk,解压后进入目录 1.在kafka解压目录下下有一个config的文件夹,里面放置的是我们的配置文件 consumer. ...