Docker安装(Debian8)-构建简单的SpringBoot应用

安装docker

1. 创建仓库

  • 移除已安装的docker(docker之前被称为docker或者docker-enginer如今称为docker-ce)java

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

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

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

    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包vim

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

    sudo apt-get install docker-ce
  • 若是须要安装特定版本的docker cebash

    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,解决方法:app

    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是否安装成功,若是下图所示即为安装成功curl

    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:8 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-8 \ #设置时区,docker中默认使用UTC时间 && echo "Asia/Shanghai" > /etc/timezone \ && rm /etc/localtime \ #从新配置tzdata软件包,使得时区设置生效 && dpkg-reconfigure -f noninteractive tzdata #指定维护者信息,可不写 MAINTAINER yehx 582097515@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 8181 #容器启动后须要执行的命令 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        10 hours ago        660MB
  • 运行镜像

    #-p 8181:8181指定端口映射,让外部也能够访问这些应用,若是不用-p,能够经过--network host,将container与宿主机的网络相连通 #--name指定运行后的容器名称 #-d 
    docker run -d -p 8181:8181 --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…"   10 hours ago        Up 10 hours         0.0.0.0:8181->8181/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]

相关文章
相关标签/搜索