初识Docker、Docker安装、配置阿里云镜像加速

前言

Docker为什么会出现

一款产品在开发和上线面向用户通常会有两套环境,环境的部署都是非常麻烦的,比如我们发布Java的war项目需要有java环境、Tomcat等服务器还有相应的配置,并且有可能环境还不能跨平台。

那么这个时候就产生了两个角色,一个是开发人员,一个是运维。

这个时候就产生了个问题:我的程序在我的电脑可以运行,但是到其他环境就不可行了,或者版本更新之后导致一些服务不可用,那么对运维的考验就很大了。

但是作为一名Java全栈开发,运维的知识也必不可少,因此解决这种环境配置费时费力的问题,我们通常希望在发布产品的时候也把我们的环境配套带过去,因为我们的产品在自己环境测试可以保证可用,我们希望我们在发布的时候也附带上我们的环境,配套发布,Docker就是做这么一件事情

  • 传统:开发者负责开发生成jar包,运维来负责部署

  • 现在:开发者打包部署上线一套流程做完!

java->apk(应用)->发布(应用商店)->下载apk->安装即可用

java->写一个jar->打包项目带上环境(镜像)->Docker镜像(Docker仓库:商店)->下载我们发布的镜像->直接运行即可

在这里插入图片描述

这张图是一条鲸鱼,上面有很多的集装箱,都放在一条船上,代表一个环境可以同时有多套东西,互不影响。

Docker的思想来自于集装箱隔离是核心思想,所有的东西打包装箱,每一个箱子是互相隔离的,我们不用担心环境、端口冲突等问题,将服务器资源运用到极致。

Docker官方地址

  • 仓库地址:https://hub.docker.com/
  • 文档地址:https://docs.docker.com/

Docker能做什么

之前的虚拟机技术:
在这里插入图片描述
我们在虚拟机中有我们的内核和运行库,可以运行多个App,模拟了一台电脑出来,但是我们仅仅是想运行程序或者简简单单写一个代码而已,并不需要安装整台电脑,这就非常的笨重,并且启动速度很慢

  • 资源占用十分多
  • 启动慢,冗余多

现在容器化技术:
在这里插入图片描述

容器化技术不是模拟一个完整的操作系统

我们只需要拿到核心部分即可,所以内核只需要拥有核心内核即可,每一个容器都互相隔离,互不影响,拥有各自单独的配置,并且可以在同一环境下运行。

比较Docker和虚拟机技术的不同:

  • 传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机,容器是没有自己的内核的,也没有虚拟我们的硬件,所以非常的轻便
  • 每个容器间是互相隔离的,每个容器内都有属于自己的文件系统,互不影响,安全可靠
  • 更加快速的交付和部署,一键运行打包镜像发布测试
  • 更便捷的升级和扩缩容
  • 更简单的系统运维

在容器化之后,我们的开发,测试环境都是高度一致的,更高效的计算资源利用,它是内核级别的虚拟化,一个物理机可以运行多个容器。

Docker安装

Docker的基本组成

在这里插入图片描述
三大组件:

  • 镜像(image)
    Docker镜像就跟一个模板一样,可以通过这个模板来创建容器服务,通过运行就可以开启一个服务,通过这个镜像可以创建多个容器
  • 容器(container)
    Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建,可以启动、停止、删除,我们可以把这个容器理解为一个简单的Linux系统
  • 仓库(repository)
    仓库就是存放镜像的地方
    仓库分为共有仓库和私有仓库
    Docker Hub、阿里云、华为云等等容器服务

环境准备

  • 需要会Linux基础
  • Ubuntu
  • 使用Xshell连接远程服务器进行操作

安装

https://docs.docker.com/get-docker/

进入连接之后,点击Docker for Linux进行下载
在这里插入图片描述
我们在左边选择Install on Ubuntu
在这里插入图片描述
在这里可以看到版本要求,我们需要购买相应版本的云服务器
在这里插入图片描述
使用命令:lsb_release -a 查看
在这里插入图片描述
我们这里的版本是:Ubuntu Bionic 18.04.6 (LTS),并且Codename是bionic,跟Docker版本要求符合。

卸载老版本

使用如下命令:

apt-get remove docker docker-engine docker.io containerd runc

在这里插入图片描述

安装基本的环境

apt update
apt-get install ca-certificates curl gnupg lsb-release

安装GPG证书

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

写入软件源信息

我们这里使用阿里云的镜像:

add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

安装新版本

apt-get install docker-ce docker-ce-cli containerd.io

docker-ce 社区版
docker-ee 企业版

官方推荐社区版

启动docker

systemctl start docker

查看是否安装成功

使用命令:

docker version

在这里插入图片描述
这样就说明安装成功了,我们的docker是基于go语言来设计的。

HelloWorld测试

docker run hello-world

在这里插入图片描述
这里的信息很多,我们来看看:
首先,它说它找不到hello-world这个镜像
在这里插入图片描述
接着,它去远程拉取镜像
在这里插入图片描述
然后,说明拉取成功,并且有签名信息
在这里插入图片描述
最后,返回信息,安装成功
在这里插入图片描述

查看一下下载的这个helloworld镜像

docker images

在这里插入图片描述

卸载Docker

apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docke
rm -rf /var/lib/containerd

配置阿里云镜像加速

我们进入阿里云控制台,找到容器镜像服务

https://home.console.aliyun.com/home/dashboard/ProductAndService

在这里插入图片描述
找到镜像加速器
在这里插入图片描述

配置镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    
    
  "registry-mirrors": ["https://84mfby27.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述
这样就配置完成了。

猜你喜欢

转载自blog.csdn.net/m0_46983722/article/details/124677863