• Linux下安装docker,更改镜像仓库地址,并部署springboot应用


    今天做不成的事,明天也不会做好。


    各位同学大家好,随着docker的快速发展,越来越多的人开始使用,一方面随着容器化这个趋势越来越火,docker成为了其中的佼佼者;二来容器化确实降低了运维的门槛,让我们开发更容易的在服务器上面部署项目。这篇文章记录了docker的安装,同时也教大家如何更改dockers镜像仓库地址和部署springboot应用!


    1.什么是docker?

    1.1 核心概念

    我们先不提复杂的概念,我们先讲docker的三个核心概念,这有助于我们更好的理解docker和他的生命周期:

    • 镜像(image)
    • 容器(container)
    • 仓库(repository)

    以下是他们的简单说明:

    镜像Image

    image文件是容器的模板
    Docker根据image文件生成容器的实例
    同一个image文件可以生成多个同时运行的容器实例
    Docker把应用程序及其依赖打包在image文件里面

    容器Container

    Docker 利用容器来运行应用。
    容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
    可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
    *注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

    仓库Repository

    仓库是集中存放镜像文件的场所。

    我们可以拿docker和虚拟机类比,虚拟机要安装操作系统才可以下载各类软件,而docker则不需要操作系统,节省了我们很多的内存和大小。同时操作系统也可以作为一个镜像在docker运行。

    2.Docker 安装

    Mac、Windows安装Docker
    Mac、Windows安装很简单,到官网下载最新的Docker安装包,Mac电脑直接拖拽到Application中即可。Windows直接双击,一直点击下一步即可。

    2.1 Linux下的安装步骤

    1.检查是否安装

    docker -v
    • 1

    提示找不到命令即未安装,如有残留使用命令:

    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.使用yum安装

    #安装
    yum -y install docker-io
    #运行docker服务
    service docker start 或 systemctl start docker
    #再运行查看版本
    docker -v
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里写图片描述

    3.运行容器

    按照国际惯例,程序员的第一步都要用hello world来表示,docker也不例外。
    docker里用docker run命令来把一个镜像启动成容器。

    #运行容器
    docker run hello-world
    • 1
    • 2

    这里写图片描述

    可以看到第一个红框的提示说本地没有hello-world镜像,尝试去仓库拉取。第二个红框是运行的内容。
    拉取的命令是 docker pull
    所以刚其实运行了两句命令:

    docker pull hello-world
    docker run hello-world
    • 1
    • 2

    因此我们本地就下载了hello-world镜像,同时也启动了hello-world容器,我们可以用命令查看:

    #查看运行中的容器
    docker ps
    #查看所有容器
    docker ps -a
    #查看镜像
    docker images
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里写图片描述
    这里写图片描述

    #停止运行容器:docker stop containerId
    docker stop b173c56ba6be
    #删除容器
    docker rm b173c56ba6be
    #删除镜像:docker rmi imageId
    docker rmi 4ab4c602aa5e
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里写图片描述

    3.docker修改镜像仓库地址

    上面讲了docker基础,docker仓库提供了许许多多有用的镜像,我们可以用命令来查询

    docker search mysql
    • 1

    查询到需要的镜像并拉取时,我们会发现:有的镜像很大,速度很慢。怎么办呢?我们回想一下,这像不像maven中央仓库,我们从maven仓库下载jar包也很慢,因为节点在国外。这个时候我们可以自己搭建私服,也可以用一些”好事者”提供的地址,例如阿里的镜像仓库地址来加速。

    3.1 获取仓库地址

    首先我们要有阿里云的账号,然后登陆镜像管理页:容器镜像服务

    这里写图片描述

    3.2 修改配置文件

    #编辑文件
    vim /etc/docker/daemon.json
    • 1
    • 2

    添加如下内容:

    {
      "registry-mirrors": ["加速地址"]
    }
    • 1
    • 2
    • 3

    这里写图片描述

    #使生效
    sudo systemctl daemon-reload
    #重启docker服务
    sudo systemctl restart docker
    • 1
    • 2
    • 3
    • 4

    4.通过docker运行springboot项目

    4.1 步骤简介

    使用 Dockerfile 创建自定义的镜像。
    具体的原理暂时不多说,简单点就是在jar文件目录下创建Dockerfile文件,运行docker build命令生成依赖于jdk环境的镜像,镜像运行时自动部署jar包。废话不多说,实际操作!

    4.2 部署springboot项目

    4.2.1.上传jar文件

    通过maven/gradle工具把项目打成jar文件,并上传到服务器。

    4.2.2.创建Dockerfile文件

    首先进入jar所在的目录:,然后创建Dockerfile

    #创建Dockerfile文件
    vim Dockerfile
    • 1
    • 2

    输入如下内容

    FROM java:8
    VOLUME /tmp
    ADD 你jar包的名字 app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    EXPOSE 你的项目部署端口
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这里写图片描述
    这里写图片描述

    在这个自定义镜像文件里,我们依赖了jdk的镜像;具体的Dockerfile命令语句大家可以自己去学习。

    4.2.3 创建镜像

    语法:docker build -t 生成镜像名 .

    docker build -t spring/test .
    • 1

    记住,最后的”.”不要忘记加上,表示当前目录。
    创建完毕,docker images 查看
    这里写图片描述

    4.2.4 运行镜像

    docker run -d -p 8080:8080 --name spring-test spring/test
    • 1
    参数说明:

    -d 后台启动
    -p 8080:8080 把镜像启动的端口(右)映射到linux机的端口(左)
    –name spring-test 给你的容器命名
    spring/test 你的镜像名

    #查看运行中的容器
    docker ps
    • 1
    • 2

    这里写图片描述

    #查看对应容器的启动日志:docker logs containerId
    docker logs 792265ab2a38
    • 1
    • 2

    这里写图片描述
    出现以上日志表示启动成功。(运行需要时间,可以多看几次)

    4.2.5 访问网页

    接下来只需要在地址栏输入:服务器IP:端口号
    进行项目的访问就好。
    这里写图片描述

    5.后记

    docker的功能很强大,很多特性和功能这里都没说到;例如镜像的导入导出,私仓的配置,docker-compose的使用。大家可以自己去总结一下docker的命令和功能用法。在往后可以对kubernetes进阶学习。kubernetes+docker可以给我们的项目部署带来极大的方便。

    原文地址:https://blog.csdn.net/qq_35992900/article/details/81110140
  • 相关阅读:
    angular项目中使用jquery的问题
    angular项目中使用Primeng
    angular项目中使用angular-material2
    angular中使用AMEXIO
    angular项目中使用ngSemantic
    LeetCode——无重复字符的最长子串
    LeetCode——实现 strStr()
    Java split函数
    Java JavaScript 输入输出
    Java Stack,Queue,PriorityQueue,deque相关操作
  • 原文地址:https://www.cnblogs.com/jpfss/p/11276687.html
Copyright © 2020-2023  润新知