0
点赞
收藏
分享

微信扫一扫

【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号

雪域迷影 2023-06-28 阅读 76

 Docker 能解决的问题

⾸先,我们先来看⼏个问题:

1. 合作开发的时候,在本机可以运⾏,在别⼈的电脑上跑不起来。

这⾥我们以 Java Web 应⽤程序为例,⼀个 Java Web 应⽤程序涉及很多东⻄,⽐如 JDK Tomcat Spring 等等。当

这些其中某⼀项版本不⼀致的时候,可能就会导致应⽤程序跑不起来这种情况。 Docker 则将程序直接打包成镜像,

直接运⾏在容器中即可。

2. 服务器⾃⼰的程序挂了,结果发现是别⼈程序出了问题把内存吃完了,⾃⼰程序因为内存不够就挂了。

这种也是⼀种⽐较常⻅的情况,如果你的程序重要性不是特别⾼的话,公司基本上不可能让你的程序独享⼀台服务

器的,这时候你的服务器就会跟公司其他⼈的程序共享⼀台服务器,所以不可避免地就会受到其他程序的⼲扰,导

致⾃⼰的程序出现问题。 Docker 就很好解决了环境隔离的问题,别⼈程序不会影响到⾃⼰的程序。

3. 测试阶段能运⾏和上线出现问题。

开发阶段部署⼀套软件环境,测试⼈员在开发中测试没有问题,运维进⾏部署(同⼀套代码)。但是正式部署到服

务器时,发⽣了问题(启动参数、环境问题、漏配了参数)等意外。

4. 公司要弄⼀个活动,可能会有⼤量的流量进来,公司需要再多部署⼏⼗台服务器。

在没有 Docker 的情况下,要在⼏天内部署⼏⼗台服务器,这对运维来说是⼀件⾮常折磨⼈的事,⽽且每台服务器的

环境还不⼀定⼀样,这时就会出现各种问题,最后部署地头⽪发麻。⽤ Docker 的话,我只需要将程序打包到镜像,

你要多少台服务,我就给你跑多少容器,极⼤地提⾼了部署效率。

5. 微服务环境搭建问题。

随着微服务技术的兴起,⼀个⼤的应⽤需要拆分成多个微服务。多个微服务的⽣成,就会⾯临庞⼤系统的部署效

率,开发协同效率问题。然后通过服务的拆分,数据的读写分离、分库分表等⽅式重新架构,⽽且这种⽅式如果要

做的彻底,需要花费⼤量⼈⼒物⼒。可能需要部署很多个服务器。

6. 容器版本管理。

持续的软件版本发布、测试项⽬到线上环境的集成。⽤户可以⽅便地创建和使⽤容器,把⾃⼰的应⽤放⼊容器。容

器还可以进⾏版本管理、复制、分享、修改,就像管理普通的代码⼀样。

为什么使⽤Docker

1. 简化程序

Docker 让开发者可以打包他们的应⽤以及依赖包到⼀个可移植的容器中,然后发布到任何流⾏的 Linux 机器上,便

可以实现虚拟化。 Docker 改变了虚拟化的⽅式,使开发者可以直接将⾃⼰的成果放⼊ Docker 中进⾏管理。⽅便快

捷已经是 Docker 的最⼤优势,过去需要⽤数天乃⾄数周的任务,在 Docker 容器的处理下,只需要数秒就能完成。

2. 避免选择恐惧症

如果你有选择恐惧症,还是资深患者。 Docker 帮你打包你的纠结! Docker 镜像中包含了运⾏环境和配置,所以

Docker 可以简化部署多种应⽤实例⼯作。⽐如 Web 应⽤、后台应⽤、数据库应⽤、⼤数据应⽤,再如 Hadoop

群、消息队列等都可以打包成⼀个镜像部署。

3. 节省开⽀

⼀⽅⾯,云计算时代到来,使开发者不必为了追求效果⽽配置⾼额的硬件, Docker 改变了⾼性能必然⾼价格的思维

定势。 Docker 与云的结合,让云空间得到更充分的利⽤。不仅解决了硬件管理的问题,也改变了虚拟化的⽅式。

4. 持续交付和部署

对开发和运维( DevOps )⼈员来说,最希望的就是⼀次创建或配置,可以在任意地⽅正常运⾏。使⽤ Docker 可以

通过定制应⽤镜像来实现持续集成、持续交付、部署。开发⼈员可以通过 Dockerfile 来进⾏镜像构建,并结合持续

集成( Continuous Integration )系统进⾏集成测试,⽽运维⼈员则可以直接在⽣产环境中快速部署该镜像,甚⾄

结合持续部署( Continuous Delivery/Deployment )系统进⾏⾃动部署。⽽且使⽤ Dockerfile 使镜像构建透明化,

不仅仅开发团队可以理解应⽤运⾏环境,也⽅便运维团队理解应⽤运⾏所需条件,帮助更好的⽣产环境中部署该镜

像。

5. 更轻松的迁移

由于 Docker 确保了执⾏环境的⼀致性,使得应⽤的迁移更加容易。 Docker 可以在很多平台上运⾏,⽆论是物理

机、虚拟机、公有云、私有云,甚⾄是笔记本,其运⾏结果是⼀致的。因此⽤户可以很轻易的将在⼀个平台上运⾏

的应⽤,迁移到另⼀个平台上,⽽不⽤担⼼运⾏环境的变化导致应⽤⽆法正常运⾏的情况。

Docker特点

标准化交付: Docker 将应⽤打包成标准化单元,⽤于交付、部署。

轻量级:容器及包含了软件运⾏所需的所有环境,⽽且⾮常轻量级。

⾼可靠:容器化的应⽤程序,可以在任何 Linux 环境中始终如⼀的运⾏。

隔离性:容器化的应⽤程序,具备隔离性,这样多团队可以共享同⼀ Linux 系统资源。

Docker 安装

1. 切换到 root 账户,并输⼊ root ⽤户密码。

2. 查看电脑上是否已经安装 Docker 软件。

3. 如果已经安装过 Docker ,先卸载已安装的 Docker ,执⾏如下命令。如果报告未安装这些包,则没有问题

4. 安装所需的软件包。 yum-utils 提供了 yum-config-manager 应⽤,并 device-mapper-persistent-data lvm2

需要 devicemapper 存储驱动程序

5. 设置 Docker 镜像的仓库,添加软件源信息。

7. Docker 要求 CentOS 系统的内核版本⾼于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否⽀持安装

Docker

8. 安装 Docker-CE 软件。

6. 更新 yum 源。

8. 安装 Docker-CE 软件

9. 安装后查看 Docker 软件的版本。

10. 查看 docker 概要信息。

11. 查看 docker 帮助⽂档

2.3 Docker 守护进程相关命令

1. 启动 docker 服务

2. 查看 docker 服务运⾏状态。如果 docker 是在运⾏中,输⼊命令后会看到绿⾊的 " active (running) " 提示。

3. 重启 docker 服务。

4. 停⽌ docker 服务。

5. 设置 docker 开机⾃动启动。

6. 禁⽤ Docker 开机⾃动启动。

2.4 Docker 镜像加速器

1. 中科⼤镜像加速器

1. 通过 vim 命令编辑 daemon.json ⽂件(没有时新建该⽂件)。

2. daemon.json ⽂件中输⼊如下内容。

注意:⼀定要保证该⽂件符合 JSON 规范,否则 Docker 将不能启动。

2. 阿⾥云镜像加速器

1. 访问阿⾥云镜像获取地址: https://promotion.aliyun.com/ntms/act/kubernetes.html

3. 进⼊控制台后,搜索【容器镜像服务】选项。

4. 在打开的容器镜像服务窗⼝中,选择【镜像加速器】选项,复制个⼈的加速器地址。

5. 通过 vim 命令编辑 daemon.json ⽂件(没有时新建该⽂件)。

6. daemon.json ⽂件中输⼊如下内容。

4. 重新启动服务

5. 检查加速器是否⽣效

检查加速器是否⽣效配置加速器之后,如果拉取镜像仍然⼗分缓慢,请⼿动检查加速器配置是否⽣效,在命令⾏执

docker info ,如果从结果中看到了如下内容,说明配置成功

3 Docker 常⽤命令

搜索镜像

拉取镜像

注意:受⽹速的影响,上述镜像在下载过程中⽐较缓慢,可能会出现⼀次下载不成功的情况,则重新拉取, 并耐⼼等待。

查看镜像

1. 查看本地镜像列表。

2. 列出本地镜像中 REPOSITORY ubuntu 的镜像列表。

删除镜像

1. 强制删除本地镜像 centos:7

2.按镜像 ID 删除镜像。

容器相关命令

查看容器

列出容器。

查看停⽌的容器。

3.2.2 创建与启动容器

使⽤ nginx 镜像 ID 以后台模式启动⼀个容器,将容器的 80 端⼝映射到主机的 80 端⼝。

  3.2.3 启动停⽌重启容器

停⽌运⾏中的容器 mynginx

停⽌所有正在运⾏的容器。

启动已被停⽌的容器 mynginx

重启容器 mynginx

3.2.4 登录容器

举报

相关推荐

0 条评论