容器化运维操作(二)——常见的应用场景介绍之快速部署、隔离应用、提高开发效率、版本控制、DevOps流程

常见的应用场景介绍

Docker提供了轻量级的虚拟化,相比于虚拟机,可以在同一台机器上创建更多数量的容器。它常见的应用场景:1. 快速部署;2. 隔离应用; 3. 提高开发效率; 4. 版本控制; 5. 简化配置,整合资源;

1、快速部署

我们尝试着来部署一个mysql:

docker run -d --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 mysql

在这里插入图片描述

同样的道理,我们来部署一个nginx:

在这里插入图片描述

注意:这里没有映射服务端口,所以在80端口是看不到index.html中的内容的。需要加入-p参数来映射端口!!

docker run -d --name web -p 8000:80 -v ${your_dir}:/usr/share/nginx/html nginx

2、隔离应用

我们可以同时跑两个mysql,两个nginx,指定不同的端口进行映射:

mysql-test1映射到8001端口,把mysql-test2映射到8002端口。

docker run -d --name mysql-test1 -p 8001:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
docker run -d --name mysql-test2 -p 8002:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

把web1映射到8100端口,把web2映射到8200端口。

docker run -d --name web1 -p 8100:80 -v ${your_dir}:/usr/share/nginx/html nginx
docker run -d --name web2 -p 8200:80 -v ${your_dir}:/usr/share/nginx/html nginx

3、提高开发效率

  1. 一致的运行环境

    由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

  2. 更快速的启动时间

    传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。

  3. 更高效的复用系统资源

    由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

  4. 仓库/镜像机制

    使用仓库可以方便的在任何有docker进程的虚拟机/服务器/主机上运行docker应用,环境的统一,让它们的部署变的非常的简单。

4、版本控制

Docker容器还可以像git仓库一样,可以让你提交变更到Docker镜像中并通过不同的版本来管理它们,来看看下面的例子:

我们之前创建了一个mysql,现在,我们使用commit命令就可以给它做一个快照,打上一个tag

在这里插入图片描述

在后面的课程中,我们会详细的介绍Docker的常见命令

5、DevOps流程

对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。

而且使用 Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐