基于Ubuntu20.04构建自己的nginx和php Docker镜像
这篇是关于基于官方的Ubuntu 20.04 Docker镜像构建自己的nginx和php镜像。
首先为什么要构建自己的镜像而不是直接使用官方的nginx和php镜像?
虽然官方的包体积比较小且启动方便,但不是完全可控的,除非你对它的nginx和php配置非常熟悉,不然二次构建是比较麻烦的,比如装个扩展什么的。
所以我们要构建自己的镜像,想怎么用就怎么用,知根知底,改起来也方便。
Home of Little Jelly
这篇是关于基于官方的Ubuntu 20.04 Docker镜像构建自己的nginx和php镜像。
首先为什么要构建自己的镜像而不是直接使用官方的nginx和php镜像?
虽然官方的包体积比较小且启动方便,但不是完全可控的,除非你对它的nginx和php配置非常熟悉,不然二次构建是比较麻烦的,比如装个扩展什么的。
所以我们要构建自己的镜像,想怎么用就怎么用,知根知底,改起来也方便。
用PHP开发网站时,传统的部署方式是将Nginx和php-fpm服务部署在同一台服务器上,在Docker大行其道的今天,是否可以将它们使用Docker分别部署呢?
答案是可以!
准备容器
这里我们使用官方的ubuntu和php镜像先创建两个容器
Docker关联容器并通信可以通过在同一网络下创建容器来实现。
优点:
1. 直接通过容器名称即可访问;
2. 当容器重新启动后,容器的IP可能会变,而通过容器名称访问则无需手动修改IP。
Docker在创建容器时,可以加参数`–restart=always`使容器自启
即
docker run -it –restart=always
Docker Desktop在拉取镜像时,可能会比较慢,有时甚至拉取不下来。
解决方案主要有两种
1. 配置国内镜像mirror,如阿里云的镜像加速服务
2. 配置代理
Docker使用久了,会占用大量空间,当磁盘空间不足时,就需要对空间进行回收。
以下是以Docker Desktop macOS版为例。
可以通过Docker Dashboard中的Resource来查看磁盘占用,也可以通过命令查看
Docker Desktop安装Kubernetes。
Docker Desktop默认集成了`kubectl`命令,但要运行kubernetes服务,还是需要配置一下。
有两种配置方式:
CentOS7官方的镜像直接使用会有一些问题,比如
1. 不能用`systemctl`
2. 各种权限问题
3. attach后不能执行操作且退不出
问题太多基本不能用,所以要构建自己的镜像。
今天体验了下阿里云容器服务Kubernetes版,做下笔记。
容器服务Kubernetes三种版本
1. 专有版
2. 托管版
3. Serverless版
假设你的应用在不同时段的访问量差异较大,多的时候80台服务器跑满,少的时候50台服务器跑半满,你会怎么考虑去部署应用?
为什么要使用Kubernetes?
1. 在可靠性较低的集群上弹性地部署应用
2. 实现全自动化
3. 易于部署、扩充和管理
之前的扩充方式: