Py学习  »  docker

快速掌握 Docker:前端开发者也能轻松玩转容器化

前端大全 • 1 月前 • 50 次点击  

作者:ErpanOmer

https://juejin.cn/post/7512652304745037865

Docker 是什么?

简单讲,就是我们软件开发的时候需要依赖一些环境,比如前端需要 Node.js,后端可能需要 Java、Python 或数据库(如 MySQL、Redis)等。这些环境如果直接安装在本地,不仅配置繁琐,而且可能出现版本冲突,导致“在我电脑上没问题”的尴尬情况。

Docker 的出现目的就是为了解决这种配环境的问题,他就是一个轻量级的虚拟化容器平台,它可以把这些运行环境以及代码、依赖项等打包在一个统一的容器中运行,确保在任何机器上运行效果一致。你可以把它理解为“打包好的应用运行环境”,用完即扔,既干净又高效。

Docker 命令类比前端

前端的npm install安装依赖,docker 里面同理只需要 docker pull ,拉取需要用的容器镜像名称。

运行前端项目 npm run dev,docker 运行容器执行 docker run -p 3000:3000 运行容器。

前端打包项目  npm run build,docker 中就是 docker build -t . 构建 Docker 镜像。(就像打包一个项目)

其余命令这里就不一一列举了,其实下面我们可以用可视化的工具来操作。

安装与使用

Windows / macOS

访问官网下载安装:

🔗 官网地址:www.docker.com/products/do…

安装 Docker Desktop,安装完成后重启,确保 Docker 图标在系统托盘中运行,并终端执行以下命令确认安装:

docker -v

输出类似:

Docker version 25.0.3, build abcdefg

MacOS 用户还可以选择性能更好的 OrbStackorbstack.dev/[1]

让 AI 出了个对比速览表。


国内用户安装后可能还需要配置一下 OrbStack 代理才能正常拉镜像。


端口号为你自身电脑的代理端口号


然后我们可以在终端执行命令,启动一个容器并访问了,我们就可以访问 localhost 了。

docker run -it -p 80:80 docker/getting-started

Docker Compose

Docker Compose 是 Docker 官方提供的一个工具,用来定义和管理多个容器的应用服务

你可以通过一个叫做 docker-compose.yml 的文件,一次性启动、停止多个容器,而不用一个个手动启动。简单讲就是可以一个命令按照 yml 文件启动多个必要的服务容器。

比如开源项目就会提供 docker-compose.yml方便开发者模式们迅速的同步环境。

github.com/langgenius/…[2]

cd dify
cd docker
cp .env.example .env
docker compose up -d

现在新版无需单独安装,只要安装了 Docker Desktop 就已经自带了。

docs.docker.com/compose/ins…[3]


结语

以上就是关于 Docker 的一些简单使用的总结,希望能帮助到大家。

参考资料
[1] 

https://orbstack.dev/: https://link.juejin.cn?target=https%3A%2F%2Forbstack.dev%2F

[2] 

https://github.com/langgenius/dify/blob/main/docker/docker-compose.yaml: https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Flanggenius%2Fdify%2Fblob%2Fmain%2Fdocker%2Fdocker-compose.yaml

[3] 

https://docs.docker.com/compose/install/: https://link.juejin.cn?target=https%3A%2F%2Fdocs.docker.com%2Fcompose%2Finstall%2F



推荐阅读  点击标题可跳转

1、写给前端的 Docker 入门终极指南,别再说不会用 Docker 了!

2、手摸手教你 docker+jenkins+gitlab 部署你的前端项目

3、当配置文件变成了代码:抽象过度的陷阱

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184771
 
50 次点击