标签 linux 下的文章

1. 备份旧的配置文件

1 cd /etc/yum.repos.d/ # 进入文件夹
2 mv CentOS-Base.repo CentOS-Base.repo_back # 备份原始配置文件

2. 下载阿里源的文件

1 wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2 # 若没有 wget 可使用 curl
3 curl -o CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3. 安装 epel repo 源

1 wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2 # 若没有 wget 可使用 curl
3 curl -o epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4. 清理缓存

1 yum clean all

5. 重新生成缓存

1 yum makecache

6. 更新

1 yum -y update

因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起来就是这样几类:

1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。

1

[root@hexuweb102 ~] rpm -qa | grep ruby

2、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;

1

[root@hexuweb102~]dpkg-l|grepruby

3、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;

1

[root@hexuweb102 ~] yum list installed | grep ruby

4、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,

上面两种方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。

说明:其中rpm yum 是Redhat系linux的软件包管理命令,dpkg是debian系列的软件包管理命令

 

参考:https://blog.csdn.net/weixin_43025071/article/details/122325802

安装

1. 下载解压

1 wget https://cdn.npm.taobao.org/dist/node/v12.16.2/node-v12.16.2-linux-x64.tar.xz
2 tar -xf node-v12.16.2-linux-x64.tar.xz
3 mv node-v12.16.2-linux-x64 /usr/local/node
4 cd /usr/local/node/bin
5 ./node -v

2. 设置软链接

1 ln -s /usr/local/node/bin/node /usr/local/bin/node
2 ln -s /usr/local/node/bin/npm /usr/local/bin/npm

3. 配置node文件安装路径

1 mkdir node_global
2 mkdir node_cache
3 npm config set prefix node_global
4 npm config set cache node_cache

先说明下我用的系统是Linux CentOS,不同的Linux版本差别不大。

1.安装依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 

2.设置阿里云镜像源

因为docker默认官方的镜像源地址是国外的,速度很慢,这里将数据源设置为阿里云的镜像。当然国内还有其他的镜像源,在此不再一一介绍。

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

3.安装 Docker-CE

Docker CE(Community Edition) 社区免费版,属于docker引擎。

sudo yum install docker-ce

 

4.启动 Docker-CE

添加启动Docker服务

sudo systemctl enable docker

sudo systemctl start docker

 

5.为 Docker 建立用户组

docker 命令与 Docker 引擎通讯之间通过 UnixSocket ,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问,所以我们需要建立一个 docker 用户组,并且将需要访问 docker 的用户添加到这一个用户组当中来。

1. 建立 Docker 用户组

sudo groupadd docker

2. 添加当前用户到 docker 组

sudo usermod -aG docker $USER

6.GUI 管理配置 (可选配置)

gui管理工具 有需要则可以安装使用,没有强制要求。

Portainer 

官方地址:https://portainer.io/install.html (国外地址如果不能访问建议翻墙)

安装命令:

docker volume create portainer_data

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

  

然后通过自己的IP+9000端口访问

 

下面能看到自己的容器、镜像等。

 

7.Docker基本概念介绍

镜像(Image)

这里面保存了应用和需要的依赖环境 比如运行runtime 和webapp

为什么需要多个镜像?当开发、构建和运行容器化应用程序时,我们通常会有不同优先级。通过为这些 独立的任务提供不同镜像 

 

容器(Container)

镜像的实例。一个容器代表一个正在运行的应用程序、进程或服务。它由 Docker 镜像、执行环境和标准指令集组成。需要扩展服务时,我 

真正将镜像跑起来的东西,镜像在容器里面。可以看作是一个完全隔离的盒子。

一个容器镜像实例 代表一个独立的进程。

Hub

远程存放镜像的平台, hub上已经有很多制作好的镜像 比如redis mongodb。

仓库 (repository)

仓库用来保存镜像的地方。

镜像构建完成后,可以直接在当前宿主上运行,但是 如果需要在其它服务器上使用这个镜像,就需要一个集中存储、分发镜像的服务。仓库就是这样的一个服务。

8.Docker常用命令

docker ps --查看目前正在运行的所有容器 -a 显示包括已经停止的容器

docker pull --拉取镜像

docker rmi --删除镜像 后面可以直接根据镜像 名称或者tag 前首字母匹配

docker start  container_id --打开容器 (这里可以是容器id或名称)

docker stop container_id --停止容器 (这里可以是容器id或名称)

docker rm --删除容器(只有停止的容器才可以删除)

docker build --使用 Dockerfile 创建镜像

docker exec --容器中执行命令,例如:docker exec -it  container_id(容器名或id) /bin/bash  (bin/bash要执行的命令或工具)

docker logs --查看 容器日志 ,例如:docker logs -f -t --tail 10 container_id (容器名或id) 

 

运行容器

docker run -it --rm -p 8000:80 --name aspnet_sample microsoft/dotnet__

--name 容器名称 ,后面跟着是镜像路径或名称

--rm 运行完后删除该容器 

-p  端口映射 8000 外部端口 80镜像里面运行的端口 将8000映射到镜像里面的80

-it  输出容器命令行的内容 即容器的自身的程序输出在控制台 有点类似前台运行

-d 和it相反  隐藏后台运行

 

原文链接:https://www.linuxidc.com/Linux/2019-12/161823.htm

目录
一、前言
二、配置SSH
  1. 检查本地主机是否已经存在ssh key
  2. 生成ssh key
  3. 获取ssh key公钥内容(id_rsa.pub)
  4. Github账号上添加公钥
  5. 验证是否设置成功
三、验证原理
四、通俗解释
  1. 为什么要配?
  2. 每使用一台主机都要配?
  3. 配了为啥就不用密码了?


一、前言
在github上配置ssh key很容易,网上一大堆教程,但基本没有详细解释其原理的,为什么要配?每使用一台主机都要配?配了为啥就不用密码了?下面将简单通俗地解释一下。

我们在往github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可。

二、配置SSH
git使用SSH配置, 初始需要以下三个步骤

  • 使用秘钥生成工具生成rsa秘钥和公钥
  • 将rsa公钥添加到代码托管平台
  • 将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件

具体操作如下:

1. 检查本地主机是否已经存在ssh key

1 cd ~/.ssh
2 ls
3 //看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key

如下图所示,则表明已经存在

如果存在,直接跳到第三步

2. 生成ssh key
如果不存在ssh key,使用如下命令生成

1 ssh-keygen -t rsa -C "xxx@xxx.com"
2 //执行后一直回车即可

生成完以后再用第二步命令,查看ssh key

3. 获取ssh key公钥内容(id_rsa.pub)

1 cd ~/.ssh
2 cat id_rsa.pub

如下图所示,复制该内容

4. Github账号上添加公钥
进入Settings设置

添加ssh key,把刚才复制的内容粘贴上去保存即可

5. 验证是否设置成功

1 ssh -T git@github.com

显示如下信息表明设置成功

设置成功后,即可不需要账号密码clone和push代码

注意:之后在clone仓库的时候要使用ssh的url,而不是https!

三、验证原理
SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在git中一般命名为id_rsa.pub, id_rsa。

那么如何使用生成的一个私钥一个公钥进行验证呢?

  • 本地生成一个密钥对,其中公钥放到远程主机,私钥保存在本地
  • 当本地主机需要登录远程主机时,本地主机向远程主机发送一个登录请求,远程收到消息后,随机生成一个字符串并用公钥加密,发回给本地。本地拿到该字符串,用存放在本地的私钥进行解密,再次发送到远程,远程比对该解密后的字符串与源字符串是否等同,如果等同则认证成功。

四、通俗解释
重点来了:一定要知道ssh key的配置是针对每台主机的!,比如我在某台主机上操作git和我的远程仓库,想要push时不输入账号密码,走ssh协议,就需要配置ssh key,放上去的key是当前主机的ssh公钥。那么如果我换了一台其他主机,想要实现无密登录,也就需要重新配置。

下面解释开头提出的问题:

1. 为什么要配?
配了才能实现push代码的时候不需要反复输入自己的github账号密码,更方便

2. 每使用一台主机都要配?
是的,每使用一台新主机进行git远程操作,想要实现无密,都需要配置。并不是说每个账号配一次就够了,而是每一台主机都需要配。

3. 配了为啥就不用密码了?
因为配置的时候是把当前主机的公钥放到了你的github账号下,相当于当前主机和你的账号做了一个关联,你在这台主机上已经登录了你的账号,此时此刻github认为是该账号主人在操作这台主机,在配置ssh后就信任该主机了。所以下次在使用git的时候即使没有登录github,也能直接从本地push代码到远程了。当然这里不要混淆了,你不能随意push你的代码到任何仓库,你只能push到你自己的仓库或者其他你有权限的仓库!

原文链接:https://blog.csdn.net/weixin_42310154/article/details/118340458