使用 docker 快速启动 laravel 开发环境(初级)

laravel 7 已经发布了。作为一个懒人我很不情愿在我的开发机器上安装composer、php、nginx以及数据库等组件,也包括Homestead虚拟机。 本文是我在尝鲜 laravel 7.3时完成的内容。所有的一切只需要系统装有docker。

一、composer初始化项目

创建 composer 容器并进入

linux/mac在项目根目录下运行如下命令:

 cdir="$(cd "$(dirname "$0")" && pwd)"
 docker run -it --rm -v ${cdir}:/app composer /bin/bash

windows我不会写路径,手动改吧。

docker run -it --rm -v D:\Github:/app composer /bin/bash

使用淘宝源

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

初始化项目

composer create-project --prefer-dist laravel/laravel web --ignore-platform-reqs

至此,一个laravel项目就初始化完成了。

退出容器

exit

composer 常用命令

 cdir="$(cd "$(dirname "$0")" && pwd)"
 docker run -it --rm -v ${cdir}:/app composer install --ignore-platform-reqs

如何确定某网卡是哪个容器在使用?

55038137449

最近在做kubernetes的网络测试,排查问题时需要通过网卡确认时哪个容器在跑,具体过程如下:

  1. 确认问题网卡

    route -n
    

    1584609896662

    这是我们的目标网卡 calif036cbd2081

    查看它的接口索引值:

    ip link show calif036cbd2081
    

    1584610154380

    记住前面输出的数字 191

  2. 在所有容器中查看网卡信息。

    以下是运行脚本 test.sh,将在本机上所有容器中运行 ip a 命令

    1584626118231

    运行命令:

    ./test @if191
    

    1584610212163

    在此我们找到了目标容器

  3. 进入容器中确认,确实是这个IP的拥有者

    1584610305790


树莓派新手步骤

最近入手了树莓派4b,这篇文章记录一些使用的要点。5年前也曾买过类似的开发板,可以看这里: BB-Black

照片

1584420813388

1584420822971

1584420830181

1584420834660

查看型号

树莓派是一款来源于英国慈善组织“Raspberry Pi 基金会”的卡片电脑,至今已经发行在售了 9 个型号:

在命令行中输入:

cat /proc/cpuinfo

会打印类似下面的信息:

Hardware        : BCM2835
Revision        : c03111
Serial          : 100000001f00eb37
Model           : Raspberry Pi 4 Model B Rev 1.1

Revision 是板卡型号编码,Model 是型号名称。

Hardware: BCM2835 代表树莓派系列的硬件架构码。

生成树莓派系统信息截图

Neofetch 是用 Bash 脚本编写的,创建系统信息截图的开源工具,可以识别近 150 种不同的操作系统,当然也包含树莓派 Raspbian 操作系统。

sudo apt-get install neofetch
neofetch

修改 ~/.config/neofetch/config.conf 文件还能定制系统信息。下面是我的树莓派截图。

1584447502431

设置开机不加载图形化界面

树莓派性能应该留在刀刃上,图形界面这种吃性能的东西应该默认关闭。

$ raspi-config 

“Boot Options” -> “Desktop / CLI” -> “Console”

开启ssh服务

systemctl enable ssh
systemctl restart ssh

更换系统源

先确认树莓派使用的源地址:

$ /bin/cat /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

可以确认该树莓派基于 debian buster

将其备份后使用清华的源,使用同样 buster 版本。如果你的是其它版本的,查看其他版本的。https://mirror.tuna.tsinghua.edu.cn/help/raspbian/

更换pip源

pip国内的一些镜像

  阿里云 http://mirrors.aliyun.com/pypi/simple/   中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/   豆瓣(douban) http://pypi.douban.com/simple/   清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/   中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

修改源:

mkdir -p  ~/.pip/
vi ~/.pip/pip.conf

index-url = https://pypi.tuna.tsinghua.edu.cn/simple

扫描局域网查看树莓派IP

https://www.advanced-ip-scanner.com/cn/

安装好扫描本局域网的IP即可。

1584420390098


kubernetes限制节点可的 pod 数量

55038137449

kubernetes 默认每个节点只能启动110个pod,可以在kubelet 中增加启动参数:

--max-pods=60

重启 kubelet 后生效。重启kubelet不会造成已有重启。

现在的kubernetes集群一般是基于 kubeadm 安装的kubernetes,kubelet 启动文件位置为:

/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

原文大致如下:

ExecStartPre=/usr/bin/mkdir -p /sys/fs/cgroup/cpuset/system.slice/kubelet.service
ExecStartPre=/usr/bin/mkdir -p /sys/fs/cgroup/hugetlb/system.slice/kubelet.service

Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
... ...

ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS $KUBELET_INFRA_IMAGE $KUBELET_RES_LIMIT_ARGS $KUBELET_ROTATE $KUBELET_DOCKER_ROOT $KUBELET_NODE_STATUS_ARGS 

添加如下配置:

Environment="KUBELET_NODE_MAX_PODS=--max-pods=6000"

并在最后的 ExecStart 一行 添加启动参数 $KUBELET_NODE_STATUS_ARGS ,重启kubelet即可

systemctl daemon-reload
systemctl restart kubelet.service

1 2 3 4 5 6 97 98 99 100 101