docker停止容器后配置_Docker容器技术入门即阿里云安装配置docker详解

微服务为什么一定要用docker

一、微服务架构介绍

1. 通过将功能分解到各个离散的服务中以实现对解决方案的解耦。

2. 你可以将其看作是在架构层次而非获取服务的

1、程序开发的角度:

把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个

的应用程序堆栈,从而满足服务等级协议。

2、定义:

围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中

使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。

微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方

法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年;

二. 传统开发模式和微服务的区别:

1. 传统开模式:

619807c423f3c18e5418539d99040428.png

缺点:

1、效率低:开发都在同一个项目改代码,相互等待,冲突不断

2、维护难:代码功能耦合在一起,新人不知道何从下手

3、不灵活:构建时间长,任何小修改都要重构整个项目,耗时

4、稳定性差:一个微小的问题,都可能导致整个应用挂掉

5、扩展性不够:无法满足高并发下的业务需求

e3e67ddd2d894d26e4715327d564ce76.png

基于微服务的开发模式:

1、一些列的独立的服务共同组成系统

2、一些列的独立的服务共同组成系统

3、单独部署,跑在自己的进程中

4、每个服务为独立的业务开发

5、分布式管理

6、非常强调隔离性 

微服务为什么要用docker,Docker和K8S的关系是什么?

Java :一次编译,到处运行 JVM Java虚拟机

Docker :真正实现一次编译,到处运行

Docker 是一个开源的应用容器引擎,它基于 Google 公司推出的 Go 语言实现

让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或

Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 

01、虚拟化容器技术-Docker简介

目标

了解虚拟化技术

概述

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

(比如:vmware也是一个虚拟资源,大家都在使用vmware,大家都是在上面建立一个虚拟机,其实这就是一种虚拟化技术,或者半虚拟化技术,大家是不是使用vmware安装一个centos的系统或者安装一个windows的系统。那么你在上面操作其实和你在实体机上操作是不是比较类似,对吧,他们之间这种技术就是虚拟化技术。

这种虚拟化技术它有一个小小的弊端,我们在我们的vmware上面创建了一个centos的虚拟机,它在使用的时候是以我当前的操作系统紧密相连的,简单点说,你的操作系统内存只有4G,你在创建虚拟机的时候你会分配8个G吗?

说不能,说明虚拟机是依赖我们的当前的物理系统,它只不过是在之上构建了虚拟的系统,我们就可以使用它,这种其实就是一种半虚拟化技术。)这种虚拟机技术,完全依赖底层的宿主机,每个虚拟机本身都是独立的,隔离的,每一个都有自己单独的内存,资源没有办法达到共享,资源达不到最大化的利用和使用。而docker和它不一样,它是共享的,大白话就是我的上面有docker容器可以共享我的资源,这个时候就会在宿主机上或者一台主机上,我可以部署很多个docker容器,他们是共享的 docker这种容器技术,给我们的开发和运维去做一个统一的环境,是非常非常好的,也是非常高效和快捷的。

大家知道在真实的开发中,开发人员和与运维人员经常因为环境的问题出现故障和扯皮,这个是非常常见的纠纷,比如你在电脑上的环境都是你自己安装部署的,ok你开发完了运行没有任何问题,但是测试人员在测试的时候出问题了。为什么呢?因为它和你的环境不一样,比如你使用的是jdk1.8他使用的是1.7,常常因为各种版本的问题造成不必要的麻烦,而使用docker这个容器,首先他的第一件事情就是它能帮助我们统一运行环境。这样的话,这样的话能提高我们的开发效率,因为大家都使用的是同一个环境。所以说呀,docker以后在未来的开发环境中,用的越来越多,但是呢,docker在真正的学习过程中,它是有点偏运维方面。这也就是为什么现在招聘里面有一个职位叫:运维开发工程师 

Docker和虚拟机形象比喻

什么是物理机 

29cf57c6c2c66939140c47dcd8e34017.png

什么是虚拟机

fe806a803d8d6192180cf722faf9c10a.png

什么是docker

d902ebcd208c041ab30bcf89b30a1056.png

03、虚拟化容器技术--什么是Docker

官网:https://www.docker.com/

图例:

89d5e442ba93858f98d8aecc5e79ec48.png

一头鲸鱼通过身上的集装箱(Container)来将不同种类的货物进行隔离,而不是通过生出很多小鲸鱼来承运不同种类的货物。Docker是一个开源的应用容器引擎,基于GO语言并遵从 Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的容器是完成使用沙箱机制,相互之间不会有任何接口重叠,更重要的容器性能开销极低。一个完整的Docker基本架构由如下几个部分构成:客户端,宿主机,注册中心 

f8ae5cb92e97e23feb022d0c78ddeb16.png

1:Docker客户端

也就是在窗口中执行的命令,都是客户端

2:Docker Daemon守护进程

用于去接受client的请求并处理请求

3:仓库:

Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营公共的Registry叫做Docker Hub。远程仓库地址:https://hub.docker.com/

4:镜像:

简单点说:镜像不是单一的文件:而是有多层构成,我们可以通过 docker history 镜像名|id 查看镜像中各层内容及大小,每层都对应着Dockerfifile中的一条指令。Docker镜像默认存在/var/lib/docker/中。镜像从何而来:Docker Hub是由docker公司负责和维护的公共注册中心,包含大量的镜像文件,Docker客户端工具默认从这个公共镜像仓库下载镜像, 远程仓库地址:https://hub.docker.com/

5:容器

容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。Docker使用存储驱动管理镜像每层内容及可读写层的容器层。 

04、虚拟化容器技术-- 什么镜像

远程仓库镜像地址

https://hub.docker.com/

解释:镜像就像你下载了一个gz或zip压缩包。只不过这个镜像文件中意见包括了几个部分:

1:微型计算机(文件系统,网络)

2:当前镜像的文件,比如你下载的tomcat,tomcat的镜像文件就包括了:微型计算机 + Tomcat环境+Jdk环境 = Tomcat镜像

05、虚拟化容器技术-- 什么容器

什么是容器:就是镜像创建出来的一个运行的系统,与其说是系统还不如说,容器就是一个进程。就好比你之前下载了tomcat就开始进行解压安装和运行。

当下Docker容器化技术的背景和支撑

22e89fe6afe5fa388e0f5b2bf13756b8.png

5b1765ee65e501932ffb6cecff23f793.png

3eb4f90bad308e822e9b7b57be455320.png

3:总结

什么是Docker

1:使用最广泛的开源容器.

2:一种操作系统的虚拟化技术 linux 内核

3:依赖于Linux内核特性:NameSpace和Cgroups

4:一个简单的应用程序打包工具

作用和目的

1:提供简单的应用程序打包工具

2:开发人员和运维人员职责逻辑分离

3:多环境保持一致。消除了环境的差异。

Docker的应用场景

1:应用程序的打包和发布

2:应用程序隔离

3:持续集成

4:部署微服务

5:快速搭建测试环境

6:提供PaaS平台级产品

容器带来的好处有哪些?

1)秒级的交付和部署

2)保证环境一致性

3)高效的资源利用4)弹性的伸缩

5)动态调度迁移成本低

大家需要注意:

Docker本身并不是容器,它是创建容器的工具,是应用容器引擎 。

一. 想要搞懂Docker,其实看它的两句口号就行 :第一句,是“Build, Ship and Run”。 

0e8e69ed9c258dfa54cdd261ebb5b83d.png

也就是

搭建、发送、运行 三板斧

第二句口号就是:“Build once,Run anywhere**(搭建一次,到处能用)**”。

Docker技术的三大核心概念,分别是:

镜像(Image)

容器(Container)

仓库(Repository

负责对Docker镜像进行管理的,是Docker Registry服务(类似仓库管理员)。

不是任何人建的任何镜像都是合法的。万一有人盖了一个有问题的房子呢?所以,Docker Registry服务对镜像的管理是非常严格的。最常使用的Registry公开服务,是官方的Docker Hub,这也是默认的Registry,并拥有大量的高质量的官方镜像。 

06、虚拟化容器技术--Docker的安装

基于阿里云docker的安装以及配置

目标:掌握Docker的安装

环境:Linux环境中的Centos7.x以上版本 + 联网步骤: 

(1)yum 包更新到最新> yum update(2)安装依赖组件包,需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的> yum install -y yum-utils device-mapper-persistent-data lvm2(3)设置yum源为阿里云 在哪里下载呢?> yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo(4)安装docker> yum install docker-ce -y(5)安装后查看docker版本> docker -v# 查看docker概要信息docker info# 查看docker帮助文档docker --help

阿里云官方查找软件源 

799bd72439ea6595322faab62592781d.png

0a35e25eb72d564dfbe7f89c85439836.png

6e230090ced2a8d946687478deea5b09.png

https://yq.aliyun.com/articles/110806spm=5176.8351553.0.0.e57519919G7AI4 

手动安装帮助 (阿里云ECS可以通过内网安装,见注释部分内容)

CentOS 7 (使用yum进行安装) 

# 1. yum 包更新到最新> yum update# 2. 安装必要的一些系统工具(安装依赖组件包,需要的软件包, yum-util 提供yum-configmanager功能,另外两个是devicemapper驱动依赖的)> yum install -y yum-utils device-mapper-persistent-data lvm2# 3. 添加软件源信息 (设置yum源为阿里云 在哪里下载呢?)> yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo# 4. 安装Docker> yum -y install docker-ce# 5. 查看Docker版本> docker -v# 6. 启动Docker服务> systemctl start docker# 查看docker概要信息docker info# 查看docker帮助文档docker --help

docker卸载

1、查询docker安装过的包: 

yum list installed | grep docker

4db27679a2de6a55fda91d9d33c98b0d.png

2、删除安装包: 

yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y

3、删除镜像/容器等 

rm -rf /var/lib/docker

07、虚拟化容器技术--设置ustc镜像源 

目标为了下载镜像更加快,可以配置docker镜像加速器

ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。https://lug.ustc.edu.cn/wiki/mirrors/help/docker

官方的镜像仓库:https://hub.docker.com/ 

1eb1a6e2208cf38080f01447d01d64de.png

da31c86451e1d7c6c348c18ff789dde8.png

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <'EOF'{"registry-mirrors": ["https://0wrdwnn6.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

08、虚拟化容器技术--Docker的启动与停止

目标

掌握docker的启动与停止等的常用命令

详细命令: 

# 启动docker:systemctl start docker# 停止docker:systemctl stop docker# 重启docker:systemctl restart docker# 查看docker状态:systemctl status docker# 开机启动:systemctl enable dockersystemctl unenable docker# 查看docker概要信息docker info# 查看docker帮助文档docker --help

注意:systemctl命令是系统服务管理器指令 

10、虚拟化容器技术--容器创建与启动容器

目标

掌握创建与启动容器的命令

详细操作:

1、查看镜像 

docker images

2:拉取镜像 

> docker pull 镜像的名字# 比如> docker pull tomcat

3:查看正在

项目部署和安装dockerUI整体步骤和流程

docker 图形页面管理工具常用的有三种:

DockerUI

Portainer

Shipyard

DockerUI 是 Portainer 的前身,这三个工具通过docker api来获取管理的资源信息。平时我们常常对着shell对着这些命令行客户端,审美会很疲劳,如果有漂亮的图形化界面可以直观查看docker资源信

息,也是非常方便的。今天我们就搭建单机版的三种常用图形页面管理工具。这三种图形化管理工具以

Portainer最为受欢迎。 

一. Portainer

1、查看dockerui Portainer镜像 

docker search Portainer

2、选择喜欢的dockerui风格镜像,下载 

docker pull docker.io/portainer/portainer

3、启动UI 

docker run -d -p 9000:9000 --restart=always -v/var/run/docker.sock:/var/run/docker.sock --name prtainer-arryportainer/portainer

4、查看容器 

docker ps -a

二. dockerUI

1.查看dockerUI镜像

docker search dockerui

2.选择喜欢的dockerui风格镜像,下载 

docker pull abh1nav/dockerui

3. 启动UI 

docker run -d --privileged --name dockerui -p 9001:9000 -v/var/run/docker.sock:/var/run/docker.sock abh1nav/dockerui

4:查看容器 

Docker ps-a

掌握在docker内 tomcat的安装

第一步:https://hub.docker.com/

第二步:https://hub.docker.com/search?q=&type=image

第三步:搜索 tomcat 找到 8.5.47-jdk8-openjdk

详细命令:

1、查看镜像 

docker images

2、下载Tomcat镜像 

#docker pull 镜像组件 比如:> docker pull tomcat:8.5.49-jdk8-openjdk

3、创建tomcat容器

创建容器 -p表示地址映射-v 是做宿主机和容器系统的目录映射,为什么要目录映射做,是因为:容器里的系统不能直接去上传文件。 

docker run -di --name=mytomcat -p 8081:8080 -v/usr/local/webapps:/usr/local/tomcat/webapps tomcat:8.5.49-jdk8-openjdk

4、然后切入到 /usr/local/webapps 

> cd /usr/local/webapps> rz 没有安装> 安装 rz命令 yum install lrzsz -y选择的war包即可

5、然后在浏览器通过 ip +8081端口访问

http://39.98.157.205:8081/Arry_WeiYun/weiyun.html

798556541c4f0c2bf23c3b09bc31190d.png

6、如果你想进入tomcat容器执行如下: 

# docker exec 进入到容器系统内部 bash代表进入到当前容器的执行目录比如:tomcat就是直接进入到tomcat目录> docker exec -it mytomcat bash> cd webapps/> ls

956e1a61c311bd51698e1d393a20f219.png

7、执行完毕可以使用UI镜像仓库,查看tomcat的状态 

# 如果想退出容器到宿主机执行 exit> exit

5b5559d0741e43bcdf460444fb99f5d3.png

下节课预告:会为大家分享docker与K8S方面的教程,欢迎大家关注我们哦

849d3315a0c334d562b571a3c1e09058.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值