2020系统综合实践 第一次实践作业

一.课程调查

起初以为是和系统结构相配套的实践课,大概是硬件方向的实验,然而没想到又和博客园扯上了关系,不经回想起以前被软件工程支配的恐惧。。。48学时的课时令人害怕,再加上大数据实践,组网实践,编译原理实践,周末两天满课让想考研的我瑟瑟发抖,还是希望有足够的时间去安排课程和考研复习,另外既然是一门新的课程,自然希望学习到新的知识,能够于应用实践

二.了解微服务

  • 微服务
    • 微服务是一种软件开发技术,是面向服务的架构(SOA)结构风格的一种变体,将应用程序编排成一系列松耦合的服务。在微服务架构中,各个服务是细粒度的,协议是轻量级的。
  • 特点
    • 针对特定服务发布,影响小,风险小,成本低
    • 频繁发布版本,快速交付需求
    • 低成本扩容,弹性伸缩,适应云环境
  • 相较于传统的软件架构的优缺点
    • 优点
      • 每个服务独立存在,所以可以单独部署,不用每次发布某个功能都经历一次全服务发布。
      • 遵循单一功能原则,自服务之间可以通过RESTFUL或者RPC调用,功能解藕
      • “细粒度” 的高可扩展性,每个服务都可以单独扩展,单独负载均衡
      • 去中心化,尽可能地实现 “自服务”
      • 有利于简化单独的开百发测试以及部署,对开发团队友好
    • 缺点
      • 服务的可用性和维护性高度依赖于服务治理,如度果治理得不好将会是灾难
      • 某些服务可能造成性能瓶颈,某些服务的宕机可能导致很多服务受影响
      • 服务配置繁琐
  • 部署
    • 基于主机(物理机或虚机)的多服务实例
    • 基于主机(物理机或虚机)的服务实例
    • 基于容器的服务实例
    • 无服务器部署

三.docker的安装/环境配置

1.docker的相关概念

(1)容器

容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

(2)镜像

Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义。

(3)仓库

仓库可看着一个代码控制中心,用来保存镜像。

(4)docker

Docker 是一个用于开发,交付和运行应用程序的开放平台。能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,减少编写代码和在生产环境中运行代码之间的延迟。

(5)docker compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

(6)Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

(7)docker machine

Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。

(8)Swarm

Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

(9)k8s

k8s是基于容器的集群管理平台,它的全称,是kubernetes。

2.环境配置

2.1设置 Docker 仓库

更新 apt 包索引

$ sudo apt-get update

安装 apt 依赖包,用于通过HTTPS来获取仓库

$ sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg-agent 
    software-properties-common

添加 Docker 的官方 GPG 密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。

$ sudo apt-key fingerprint 0EBFCD88

使用以下指令设置稳定版仓库

$ sudo add-apt-repository 
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) 
  stable"

2.2安装 Docker Engine-Community

更新 apt 包索引。

$ sudo apt-get update

安装最新版本的 Docker Engine-Community 和 containerd

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

或安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出仓库中可用的版本:

$ apt-cache madison docker-ce

使用第二列中的版本字符串安装特定版本,例如 5:18.09.13-0ubuntu-xenial。

$ sudo apt-get install docker-ce=5:18.09.1~3-0~ubuntu-xenial docker-ce-cli=5:18.09.1~3-0~ubuntu-xenial containerd.io

测试 Docker 是否安装成功

$ sudo docker run hello-world

安装成功则显示以下信息

四.学习docker技术

1.容器的使用

1.1获取镜像

使用 docker pull 命令来载入 ubuntu 镜像

sudo docker pull ubuntu

1.2启动容器

使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器;使用echo打出hello world
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit:

sudo docker run -it ubuntu /bin/bash

1.3容器的查询

查看所有的容器命令如下:

sudo docker ps -a

1.4删除容器

sudo docker rm -f <容器ID>

1.5停止/启动容器

sudo docker start <容器 ID>
sudo docker stop <容器 ID>

1.6停止的容器进入交互式shell

都需要先重启容器,然后使用以下两种方式皆可

sudo docker start <容器ID>

sudo docker attach <容器ID>
或
sudo docker exec -it <容器ID> /bin/bash

1.7查看容器信息

sudo docker inspect <容器ID>

1.8容器更新信息

查看可选择的更新方式

docker container update --help

2.镜像的使用

2.1获取阿里云镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.2列出镜像列表

查看本地镜像

sudo docker images

2.3从Docker Hub网站搜索镜像

sudo docker search httpd

2.4使用上图的httpd官方版镜像

sudo docker pull httpd


再次查看本地镜像

2.5删除镜像

删除hello-world镜像,并查看镜像列表

docker rmi hello-world

3.Docker Hub仓库管理

3.1登录

登录需要输入用户名和密码,登录成功后,就可以从Docker Hub上拉取账号下的全部镜像

docker login

3.2push镜像到仓库

sudo docker tag ubuntu 1263199084/ubuntu
sudo docker push 1263199084/ubuntu


这时候登陆Docker Hub仓库可以发现镜像成功push到仓库

3.3从仓库获取镜像,并查看镜像列表

sudo docker pull 1263199084/ubuntu


3.4最后注销登陆

sudo docker logout

原文地址:https://www.cnblogs.com/ljw1999/p/12696655.html