"在我电脑上明明能跑"是程序圈的经典梗,Docker 就是为此而生:把应用连着它的运行环境打包成镜像,搬到任何装了 Docker 的云服务器上,一条命令原样跑起来。
Docker 解决什么问题
传统部署要在服务器上装一堆环境和依赖,版本稍有出入就出诡异问题。Docker 把应用和环境一起装箱,服务器只需要装 Docker 本身,环境差异这个变量直接被消灭。
上手三步
curl -fsSL https://get.docker.com | sh
docker pull nginx
docker run -d -p 80:80 --name web nginx第三条命令执行完,浏览器访问服务器 IP 就能看到 Nginx 欢迎页,整个过程不到一分钟。
几个核心概念
- 镜像:打包好的"安装包",从仓库里拉取
- 容器:镜像跑起来的实例,删掉就没了,数据要靠挂卷保存
- 挂载卷:把宿主机目录映射进容器,数据库文件必须挂出来
多个容器协同用 compose 编排:一条 docker compose up -d 拉起整套应用加数据库。学会 Docker,部署的痛苦至少减一半。