五分钟技术趣谈 | 浅谈Docker

随着互联网的极速发展,应用程序的功能越来越丰富,而需要迭代的速度要求也越来越高,为实现这些目标,应用
首页 新闻资讯 行业资讯 五分钟技术趣谈 | 浅谈Docker

b18de2342c28b051d54842a525acff7a8520dc.png

Part 01 Docker概述

Docker是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

Docker的架构如下:

93deaa497b510a561375304ae64345e25e5b04.png

Part 02 特性

➤ 文件系统隔离

每个进程容器运行在一个完全独立的根文件系统里。

➤ 资源隔离

系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。

➤ 网络隔离

每个进程容器运行在自己的网路空间,虚拟接口和IP地址。

➤ 日志记录

Docker将收集到和记录的每个进程容器的标准流,用于实时检索或者批量检索。

➤ 变更管理

容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。无需使用模板或者手动配置。

➤ 交互式shell

Docker可以分配一个虚拟终端并且关联到任何容器的标准输出上,例如运行一个一次性交互shell。

Part 03 Docker与虚拟机的区别

Docker可以让一个应用在任何操作系统中非常方便的运行。而以前我们接触的虚拟机,也能在一个操作系统中,运行另外一个操作系统,保护系统中的任何应用。

两者有什么差异呢?

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。

Docker仅仅是封装函数库,并没有模拟完整的操作系统,如图:

e35b3703442f143554307455d6ba0ce764f996.png

对比来看:

图片图片

Part 04 Docker部署java web应用

4.1 下载系统镜像(以CentOS为例)

75f7e8916178bc6102d0624ea51849ec5a5c56.png

使用命令:docker images查看下载情况

d4fe10b80fc841616eb860ce0ce6fd571870a0.png

4.2 根据该镜像创建容器

790a65b678ae7a9091312511e11edc7b919bd4.png

查看已经运行的容器列表命令:docker ps

a501e68682e7aef2ea28746430286b60bf8ebe.png

查看所有容器,然后使用容器启动命令,运行刚才创建的centos容器:docker start stupefied_perlman

6537f6c45dee143e82a733e79f3f9f314fe618.png

4.3 在容器中添加相应依赖

容器创建好以后,需要进入到容器中添加相关依赖,进入容器的命令如下:

952779a95b8e9c787ca5309071c3fb31c8aad9.png

4.4 将已经部署了环境依赖的容器提交为新镜像

a5e7fe135594bdf595d010aa13bb5ba33259b7.png

4.5 基于新镜像运行javaweb容器

e8a1c7b3019567bc3475002ddd49e454acf617.png

31    2023-07-23 18:47:59    Docker 开源