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


各位同学大家好,随着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

Linux下安装docker,更改镜像仓库地址,并部署springboot应用的更多相关文章

  1. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...

  2. linux 下安装docker

    Linux 下的 Docker 安装与使用 一.安装与配置 安装一些必要的系统工具: sudo yum install -y yum-utils device-mapper-persistent-da ...

  3. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  4. 【Linux】【Services】【SaaS】Docker+kubernetes(7. 安装Docker私有镜像仓库)

    1. 简介 1.1. 自己做个私有镜像,方便上传和下载,我也在docker官网注册了一个账号,做好的镜像可以传上去 1.2. Redhat自带私有镜像的功能,需要安装包,这是howto: https: ...

  5. centos7系统下搭建docker本地镜像仓库

    ## 准备工作 用到的工具, Xshell5, Xftp5, docker.io/registry:latest镜像 关于docker的安装和设置加速, 请参考这篇博文centos7系统下 docke ...

  6. Linux下安装docker与kubernetes(k8s)

    环境 安装是使用Vmware虚拟机下进行,操作系统是CentOS7 64位.规划是使用三台虚拟机搭建k8s的集群,网络使用NAT模式.三台的ip分别为: k8s-master:192.168.91.1 ...

  7. Linux下安装docker(1)

    1.由于centos系统已经自带docker源了,所以可以直接安装: yum install docker 如果是centos6.5版本的,使用yum -y install docker-io 进行安 ...

  8. deppin Linux下安装docker

    首先楼主用的是deppin15.11 docker 简介:Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中. ...

  9. linux 下安装 docker 环境

    一分钟了解 Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然 ...

随机推荐

  1. Spring Boot 整合 ActiveMQ

    依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri ...

  2. Apache Flink 1.9.0版本新功能介绍

    摘要:Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能.目前,Apache Flink 1.9 ...

  3. 有关阿里云对SaaS行业的思考,看这一篇就够了

    过去二十年,随着改革开放的深化,以及中国的人口红利等因素,中国诞生了大批To C的高市值互联网巨头,2C的领域高速发展,而2B领域一直不温不火.近两年来,在C端流量饱和,B端数字化转型来临的背景下,中 ...

  4. Centos--swoole平滑重启服务

    平滑重启: 已经打开的服务: 首先在server服务中为进程添加名字: /** * @param $server */ public function onStart($server) { swool ...

  5. Composer的简介说明与安装

    https://mp.weixin.qq.com/s/aSZRhoa2-JjKOTRVhPdxdQ Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为 ...

  6. 自定义UICollectionViewLayout之CATransform3D

    1.自定义UICollectionViewLayout旋转效果 之前有自定义UICollectionViewLayout(适用于多个section),本文是一个对cell进行CATransform3D ...

  7. Origin使用自定义函数拟合曲线函数

    (2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2016年10月28日) 最近应该是六叔的物化理论作业要交了吧,很多人问我六叔的作业里面有两道题要怎么进行图像函数的拟合.综 ...

  8. Asp.net Core Jenkins Docker 实现一键化部署

    写在前面 在前段时间尝试过用Jenkins来进行asp.net core 程序在IIS上面的自动部署.大概的流程是Jenkins从git上获取代码 最开始Jenkins是放在Ubuntu的Docker ...

  9. 更新CM版本

    照着这个文章搭建的 https://blog.csdn.net/sinat_32176947/article/details/79597073 需要注意问题有 离线需要自己配置yum 地址base地址 ...

  10. Windows API 25篇 TerminateProcess

    导语:结束一个进程的方法通常有:exit(), ExitProcess, TerminateProcess. 通常一个进程在正常情况下结束的话,系统会调用 ExitProcess函数结束进程,但有时候 ...