第一次用docker,老师看下我理解对不对

来源:8-4 两种nestjs数据库解决方案:mongoose与typeorm(1)

见信

2023-11-25

  • docker相当于是在我们的操作系统内,安装了一个linux的虚拟机子系统,然后将我们的应用部署到这个子系统中
  • 比如我们需要用mysql,那么docker会帮我们在这个linux系统里,配置好mysql的相关环境,然后运行容器,就相当于启动了linux里的mysql。也就是说docker里的mysql与我们本机系统上的mysql是两马事,因为进行了逻辑隔离。
  • 这一节里的ports:3306:3306相当于是把linux里的3306端口映射到了电脑本机上的3306端口,让我们在本机上也可以进行访问,是这个意思对吗?
写回答

1回答

Brian

2023-11-27

你的理解基本正确,但有一点需要澄清:

  1.  Docker不是一个完整的虚拟机子系统,而是容器化技术。它利用操作系统的内核进行隔离,允许多个容器共享同一个操作系统,因此相对于传统虚拟机,它更轻量级。容器内部使用的是宿主操作系统的内核,但有自己的文件系统和进程空间。所以,Docker容器不需要像虚拟机一样启动完整的操作系统。

  2. 正确,Docker容器可以将应用程序及其依赖项打包在一起,并在容器内运行,与宿主操作系统隔离开来。这确保了环境一致性和便携性。

  3. 对的,端口映射的概念是正确的。ports:3306:3306 表示将容器内的端口 3306 映射到主机上的端口 3306,以便通过主机访问容器内运行的 MySQL 服务。这允许你在主机上访问容器内的服务,就好像它们运行在主机上一样。


0
0

NestJS 入门到实战 前端必学服务端新趋势

近几年快速发展的Node.js框架,掌握未来前端工程师后端开发能力

569 学习 · 238 问题

查看课程