问下大家,如何把很多环境部署的东西放到一个docker
主要是我客户要求是不能用外网的,然后我用的是linux,nginx,mysql,php 还有代码,一大堆的东西,这样我怎么部署到客户服务器上,我想是用docker做一个镜像直接用镜像即可?
私有云部署可以用,docker commit + save + load
github.com/mouyong/docker-php
可以批量部署的的 docker php 版本环境,方便你放入 k8s 或者通过服务器的 docker 进行部署。
数据库、文件存储和 redis 缓存采用外部服务提供。允许容器无服务化快速扩容。
hub.docker.com/r/2233466866/lnmp
不能用外网,和你要不要部署到一个容器没有什么必然关系,而且不用外网,你很多东西怎么下载
hyperf/box
镜像可以导出的
不要放到一个容器,了解一下docker-compose
第一种,就是做一个私有的 docker 镜像仓库, 然后 你这边能访问, 客户那边也能访问,这样你把镜像打包到私有仓库中, 方便更新 和 部署, 这种情况就要求 就是 你仓库的 服务器器 客户那边能访问 然后你自己也能访问 第二种, 就是 楼上所说 你每次得把镜像导出来 然后再客户那边再部署上去 这种就有个麻烦,就是你每次更新镜像都得 导出 导入的操作
docker里面装宝塔
dockerfile进行编排 或者基于ubuntu镜像构建自己的镜像然后打包
docker-compose.yml
docker compose 可以实现
自己在外网环境下,部署好需要的容器,可以是多个容器,多个镜像 然后用 docker commit 生成镜像 再用docker image push 推到docker hub
最后,在目标服务器写好自己的docker-compose.yml文件,再用docker compose up 运营需要的容器就可以了
用
docker-compose
是正解,分别部署nginx
、php
和mysql
三个容器。各跑各的依赖库和操作系统环境,相互不影响。最好也将你的程序发布到私有镜像仓库,然后给客户安装。这样解决就行了~