月度归档: 2021 年 12 月

  • “git pull” 如何强制覆盖本地文件

    git checkout master
    git branch new-branch-to-save-current-commits
    git fetch --all
    git reset --hard origin/master

    重要提示:如果您有任何本地更改,将会丢失。无论是否有–hard选项,任何未被推送的本地提交都将丢失。
    如果您有任何未被Git跟踪的文件(例如上传的用户内容),这些文件将不会受到影响。
    下面是正确的方法

    git fetch --all
    

    然后,你有两个选择:

    git reset --hard origin/master
    

    或者如果你在其他分支上:

    git reset --hard origin/<branch_name>

  • Podman 快速入门

    今天在某云上新购一台云服务器,发现已经有了 CentOS8.2 官方镜像可选,出于对新鲜事物的好奇,我决定开始采用 CentOS8.2,即使我还没有为它的新特性做好准备。

    我的应用主要以单机版容器为主。因此,服务器启动的第一件事就是安装 Docker。不幸的事情发生了,我的 Docker 应用没有像 CentOS7 那样如期 running 起来。

    花了大量的时间排查,才找到一丝线索:CentOS8 以上的版本默认已经安装一个等同于 Docker的容器解决方案,这个就是Podman。

    两个容器解决在一起工作,相互打架的事情必然会发生。出于长治久安的考量,今天整个下午我展开了对 Podman 的研究,得到了如下的结论,希望这些结论能够让大家少走一点弯路。

    Podman 与 Docker 哪个好?

    对于这种问题,我想如何没有深刻的实践是一定无法得出结论的。就我个人来说,首先,刚开始学习的时候,我也尝试先从专业博客和论坛中寻找答案。

    我发现 Podman 中文相关的资料非常少,同理,评价它的博客就更少了,倒是有一篇非常吸人眼球的文章,例如:Docker 大势已去,Podman 万岁。但认真阅读它,却没有特别有价值的对比,完全是一种主观的表达。因此,我们不要被他人的文章所引导(误导)而形成一种偏见。

    Podman 是 RedHat 为了抢占容器标准的一种战略产品,这就是我的看法。

    Podman 兼容 Docker吗?

    大部分是兼容的,例如:

    1. 可以直接使用 Docker 镜像
    2. 命令非常相似

    如果你非常怀念 docker命令,甚至可以给 Podman 设置别名为 docker:

    echo "alias docker=podman" >> .bashrc
    source .bashrc
    

    Podman 镜像

    默认镜像库

    文件 /etc/containers/registries.conf 是设置镜像地址配置文件,默认会搜索 [‘registry.access.redhat.com’, ‘registry.redhat.io’, ‘docker.io’, ‘quay.io’]
    等几个镜像库。

    不过,这几个镜像库下载速度非常慢,可以说是基本无法顺利的将镜像拉下来。

    所以,需要修改修改镜像库配置文件,也就是大家说的镜像加速方案。

    镜像加速

    只需2个步骤实现镜像加速:

    1. 改名并备份好文件:/etc/containers/registries.conf
    2. 再新建一个空的 registries.conf 文件,插入如下内容unqualified-search-registries = ["docker.io"] [[registry]] prefix = "docker.io" location = "******.mirror.aliyuncs.com"
    3. 修改 location
    4. 保存

    Podman Compose

    Podman Compose 等同于 Docker Compose,是用于固化容器运行参数以及协调容器之间的关系的一种较为简单的方案。

    使用如下的命令,安装 Podman Compose,并根据自己的喜好设置别名(如果仍然忘不了 docker)

    pip3 install podman-compose
    echo "alias docker-compose=podman-compose" >> .bashrc
    source .bashrc
    

    Podman 外网

    如果以普通用户运行容器,此容器默认无法被外网访问,为了避免不必要的麻烦,建议以root用户创建并运行容器。

    另外,run 容器的时候,请勿使用 -p 0.0.0.0:9090:80 这种端口映射方式,它会导致容器无法被外网访问。如果采用正常的端口映射方式 -p :9090:80,就没有任何问题。

    #无法被外网访问
    sudo podman run --name phpmyadmin  --restart=always  -itd  -p 0.0.0.0:9090:80  -e PMA_HOST=10.88.0.1  phpmyadmin/phpmyadmin
    
    #可以被外网访问
    sudo podman run --name phpmyadmin  --restart=always  -itd  -p 9090:80  -e PMA_HOST=10.88.0.1  phpmyadmin/phpmyadmin
    

    标签

  • 英文1-12月

    1、Jan. January 一月;

    2、Feb. February 二月;

    3、Mar. March 三月;

    4、Apr. April 四月;

    5、May无缩写 五月;

    6、Jun. June 六月;

    7、Jul. July 七月;

    8、Aug. August 八月;

    9、Sep. September九月;

    10、Oct. October 十月;

    11、Nov. November 十一月;

    12、Dec. December 十二月。

  • linux git版本更新

    安装 centos7 WANDisco 仓库

    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm

    2,安装 Git
    yum -y install git
    3,版本验证
    git version
    centos7 安装快捷复制
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
    yum -y install git
    git version

    yum install nss