天涯海角异孤星
之前曾发布了一篇文章 用 docker-compose 构建 lnmp 开发环境,文中的 php 容器是通过自己写的 Dockerfile 构建的,其中 redis、swoole 扩展使用 pecl 指令在线安装,但是由于网络不佳,有时候代码包会下载失败,又得重新构建,很浪费时间。
Docker Hub 是 Docker 官方提供的一项容器镜像托管服务,它允许我们上传自己的镜像文件,方便与其他人共享。我们注册一个 Docker Hub 账号,然后上传自己生成的 php 镜像文件,这样下次使用到 php 容器的时候,直接从自己的 Docker Hub 仓库拉取,就不需要每次重新编译那些繁杂的 php 扩展了。
在命令行下,输入 docker login
指令登录自己的 Docker Hub 账号...
docker-compose
中有两种方式可以暴露容器的端口:ports
和expose
。
ports
暴露容器端口到主机的任意端口或指定端口,用法:
ports:
- "80:80" # 绑定容器的80端口到主机的80端口
- "9000:80" # 绑定容器的80端口到主机的9000端口
- "443" # 绑定容器的443端口到主机的任意端口,容器启动时随机分配绑定的主机端口号
不管是否指定主机端口,使用ports
都会将端口暴露给主机和其他容器。
expose
暴露容器给link
到当前容器的容器,或者暴露给同一个networks
的容器,用法:
expose:
- "3000"
- "8000"
以上指令将当前容器的端口3000
和8000
暴露给其他容器。
和ports
的区别是,expose
不会将端口暴露给主机,主机无法访问expose
的端口。
前端代码高亮插件 highlight.js,默认是不带行号显示功能的。如果要显示行号,我们得自己实现,或是使用第三方插件。下面就来介绍几种实现方式,并分析优缺点。
1、第一种,使用 <li></li> 标签实现行号
2、第二种,使用 highlightjs-line-numbers.js 插件显示行号
3、第三种,我自己的实现方式
sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果有所不同。
1.inner join,在两张表进行连接查询时,只保留两张表中完全匹配的结果集。
2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。
3.right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。
4.full join,在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。