Linux服务器相关知识点记录1

目录

1 安装centos系统

2 设置centos为固定IP

3 往centos中拷贝文件

4 安装docker环境

5 在docker中安装rabbitmq

6 在docker中搭建WordPress网站

7 在docker中安装node-red

8 在docker中安装可视化管理工具Portainer

9 在docker中安装homeassistant

10 在docker中安装mqtt服务器mosquitto

11 docker中安装emqx


1 安装centos系统

下载centos镜像,地址 https://mirrors.aliyun.com/centos/

在虚拟机中安装centos

网上教程很多,示例1,本次安装硬盘40G,内存2G,网络选择了桥接模式。语言选择了中文,时间设成与当前一致,软件选择带GUI,系统自动分区,网络和主机名用了默认的,设置root密码,之后设置新建用户名和密码,也可跳过;

Centos安装完成后,重启,设置ip

用ifcongfig看此时ens33此时是没有IP地址的,且ping www.baidu.com也不通,说明上不了网,由于此时选择的是桥接模式,需要把有线网断开(因为常用无线网上网),打开手机热点,电脑连接手机热点,运行指令su root切换到root权限,运行指令dhclient自动获取ip地址,如果该指令不成功,reboot系统,再重新使用dhclient指令即可。

说明:如果采用的是公司网络,若在网络中做了限制,在安装过程中会报错。Centos的ip设置方法

也可以只将ifcfg-ens33文件中的ONBOOT=no改为yes,桥接模式,主机联网则虚拟机也能联网。service network restart重启网络服务。

查看centos版本,cat /etc/redhat-release

查看Linux版本,uname -a

查看内核版本,cat /proc/version


2 设置centos为固定IP

方法1:更改ifcfg-ens33文件

默认配置文件目录为cd /etc/sysconfig/network-scripts

用指令进入vi ifcfg-ens33文件,进入如下更改

按键盘”i”键进入编辑模式,更改完成后,按ESC键,之后按shift+Q键,再输入wq!指令(保存并推出),此时更改成功,reboot系统,用ifconfig指令即可看到ip被设置为静态IP

注意事项,如果文件非正常退出,会生产缓存文件,采用l.查看缓存文件

使用“rm -rf 文件名” 逐个删除这些临时文件,这样在用vi指令打开文件时就不会出现提示了,打开文件后,如果不能直接编辑,先按“A”键,即进入编辑模式,按照上面指令保存退出即可。

如果dhcp模式下获取不到ip,断开公司无线网,连接自己手机热点即可

方法2:利用NetworkManager

命令栏输入指令nmtui即可打开配置页面,如下,更改完配置后保存即可

 

通过上述方法更改的IP地址,利用vi ifcfg-ens33打开文件可以看到文件内容也变化了。

如果nmtui指令不能打开上述页面,可能是NetworkManager服务被关掉了,采用指令server NetworkManager start打开即可。

注意:部分情况需要关机该服务,并设置为开机不启动,方法如下

关于network服务和NetworkManager 服务说明

将NetworkManager 服务设置开机不启动

chkconfig NetworkManager off

将NetwokManager服务关闭

service NetworkManager stop

重新启动一下network服务

service network restart

或如下指令

临时关闭

systemctl stop NetworkManager

永久关闭

systemctl disable NetworkManager

重启

systemctl restart network

注意:中间出现过一次dhclient指令无反应的状态,各种折腾未果,关闭了NetworkManager也还是不行,后来发现是把桥接模式中的网卡设为了本地,改为自动后,也不行,重启电脑后才可以。


3 往centos中拷贝文件

利用WinSCP设置SFTP登录,设置如下,一定要选择SFTP协议,如果选择SCP协议,那么打开会有乱码


4 安装docker环境

参考网上教程进行docker安装,很好的docker入门示例1示例2

主要步骤为:(通过docker软件仓库进行安装)

卸载旧版本docker-->安装基础组件-->添加docker软件仓库地址(使用阿里的镜像站)-->安装所需版本的docker,这里选择文件版-->验证密钥指纹-->安装完成后启动docker-->运行hello world镜像来验证按照是否正常,由于本地没有该镜像,系统会自动从远程镜像仓库下载。

扩展说明:yum是Yellowdog update Modified的简称。yum的宗旨是自动化的升级、安装/移除rpm安装包(也就说yum这个命令它的操作对象是RPM包),收集rmp的相关信息,检查依赖性,并提示用户解决。

RPM的全称是“RedHat Package Manager”,最早是Red Hat公司开发的,而rpm包则是软件编译完成后按照RPM机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,它省去了Linux软件安装中编译的步骤,安装成功后软件就可以用了。

docker常用命令如下

sudo systemctl start docker  启动docker

sudo systemctl status docker 查看docker运行状态

sudo systemctl stop docker  暂停docker

docker images    查看本地镜像

docker -v   查看docker版本

说明:上面指令都使用了sudo表示超级管理员权限,可以把当前用户加入到docker用户组,指令为usermod -aG docker your_username

设置docker开机自启动命令,sudo systemctl enable docker

比较好的链接,Docker基础用法篇


5 在docker中安装rabbitmq

查找镜像,docker search rabbitmq:management

拉取docker镜像,指令为docker pull rabbitmq:management,之后会自动从网上下载,如果提示不成功,有可能centos没联网,或docker未启动;

注意:要选择带rabbitmq 后面带management的镜像,这个是web端

这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可。

官网查看rabbitmq版本,https://hub.docker.com/_/rabbitmq

带版本拉取镜像举例:docker pull rabbitmq:3.7.7-management

查看拉取的docker镜像是否存在,指令docker images

创建和启动容器,指令如下

docker run -di --hostname myRabbitmq1 --name rabbitmq -p 5672:5672 -p 15672:15672 -p 61613:61613 -p 1883:1883 rabbitmq:management

说明:直接输入该指令,不用前2步也行,因为系统自动检测,如果没有image会自动下载;

补充说明1:

-d 后台运行容器;

--name 指定容器名;

-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);

-v 映射目录或文件;

--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);

-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码),RABBITMQ_ERLANG_COOKIE,因为RabbitMQ使用Erlang实现的,Erlang Cookie相当于不同节点之间相互通讯的秘钥,Erlang节点通过交换Erlang Cookie获得认证

确认和启动容器

查看容器是否启动,指令 docker ps

查看容器,指令 docker ps -a

设置容器开机自启动,sudo docker update --restart=always containerID(容器名ID)

补充说明2:

docker images  查看镜像

docker ps -a   查看所有容器

docker ps  查看正在运行容器

docker stop containerID(容器名ID)  暂停正在运行的容器

docker rm containerID(容器名ID)    删除容器

docker rmi imagename(镜像名)    删除镜像

注意一定要先暂停容器,再删除容器,最后删除镜像,否则如果直接删除镜像,只是该镜像的tag被删除,会报错

补充说明3:

本次测试过程中发现创建的容器并没有启动,即使手动执行docker start containerID(容器名)也还是启动不了,使用docker logs containerID(容器名)进行查看,发现报错信息

此时删除之前创建的docker,更改docker run指令重新启动,成功如下

确认Web端可访问

在虚拟机外面的电脑,输入虚拟机ip:15672,访问rabbitmq控制台,由于上面提示用户名和密码不能更改,采用系统默认的,均为guest,可打开界面如下,代表安装成功

进入容器,并利用rabbitmq指令查看相应信息,参考网页,举例如下

docker exec -it containerID(容器名ID) bash

关于rabbitmq知识,参考网址C#调用RabbitMQ实现消息队列

下面描述摘自网络:以熟悉的电商场景为例,如果商品服务和订单服务是两个不同的微服务,在下单的过程中订单服务需要调用商品服务进行扣库存操作。按照传统的方式,下单过程要等到调用完毕之后才能返回下单成功,如果网络产生波动等原因使得商品服务扣库存延迟或者失败,会带来较差的用户体验,如果在高并发的场景下,这样的处理显然是不合适的,那怎么进行优化呢?这就需要消息队列登场了。

消息队列提供一个异步通信机制,消息的发送者不必一直等待到消息被成功处理才返回,而是立即返回。消息中间件负责处理网络通信,如果网络连接不可用,消息被暂存于队列当中,当网络畅通的时候在将消息转发给相应的应用程序或者服务,当然前提是这些服务订阅了该队列。如果在商品服务和订单服务之间使用消息中间件,既可以提高并发量,又降低服务之间的耦合度。

RabbitMQ就是这样一款我们苦苦追寻的消息队列。RabbitMQ是一个开源的消息代理的队列服务器,用来通过普通协议在完全不同的应用之间共享数据。

RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。Erlang语言在数据交互方面性能优秀,有着和原生Socket一样的延迟,这也是RabbitMQ高性能的原因所在。可谓“人如其名”,RabbitMQ像兔子一样迅速。


6 在docker中搭建WordPress网站

WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统。本文会将出现两个容器,一个Wordpress的网站程序的容器,另一个则是MySQL的数据库容器,从中将看到两个容器是如何协同工作的。

用root权限登录centos,创建文件夹skg/do/for_mysql和for_wordpress,之后用下面指令进行安装,如果用其它用户名进行安装,则下面root改为home:

拉取MySQL数据库镜像并创建容器

docker run -d \

--name wordpressdb \

-e MYSQL_ROOT_PASSWORD=123456 \

-e MYSQL_DATABASE=wordpress \

-p 33306:3306 \

-v /root/skg/do/for_mysql:/var/lib/mysql \

mysql:5.7

拉取WORDPRESS镜像并创建容器

docker run -d \

-p 8080:80 \

--name wordpress \

-e WORDPRESS_DB_HOST=mysql \

-e WORDPRESS_DB_PASSWORD=123456 \

--link wordpressdb:mysql \

-v /root/skg/do/for_wordpress:/var/www/html \

wordpress

之后会自动拉取镜像并创建和运行容器,之后进到/root/skg/do/for_wordpress目录,找到wp-config.php文件,打开,并设置用户名为root,密码为xxx,如果不设置会有报错,参考网站,重启WordPress的容器,用docker inspect 容器ID 指令进入容器,看分配的IP地址,在centos系统上用浏览器打开该地址即可看到如下页面。或在本地PC浏览器输入centosIP:8080也可以打开。


7 在docker中安装node-red

使用指令下载镜像到本地,参考教程

docker pull nodered/node-red

使用指令创建nodered容器

docker run -d -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

设置容器开机自启动

sudo docker update --restart=always containerID(容器名ID)

浏览器输入 centosIP:1880即可看到node-red界面,如下


8 在docker中安装可视化管理工具Portainer

执行查看都有哪些Portainer镜像指令,docker search portainer

拉取镜像 docker pull portainer/portainer

创建容器

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --name portainer-test portainer/portainer

设置容器开机自启动  sudo docker update --restart=always containerID(容器名ID)

浏览器输入 centosIP:9000即可看到界面,我这里设置的密码是12345678,默认用户名admin

下面是local docker的状况,这里可以看到镜像功能、容器功能、权限管理功能等。

  • 镜像功能有查看列表、导入导出、拉取、推送、创建、删除等功能,基本涵盖了命令行常用的命令。
  • 容器功能也一样,有新建、启动、停止、杀死、重启、删除等。
  • 权限管理功能有涉及团队、角色、用户的管理。

9 在docker中安装homeassistant

新建一个文件夹存放config,路径,名字可改  mkdir /root/haconfig/ -p

执行查看都有哪些Portainer镜像指令,docker search homeassistant

拉取镜像 docker pull homeassistant/home-assistant

创建容器

docker run --init -d --name="home-assistant" -v /root/haconfig:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant

设置容器开机自启动  sudo docker update --restart=always containerID(容器名ID)

浏览器输入 centosIP:xx即可看到界面


10 在docker中安装mqtt服务器mosquitto

参考链接,很全面

注意需要手动建立相关文件夹,文件授予相关权限,并在mosquitto.conf文件中输入如下信息

persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log

log_dest stdout
listener 9001
port 1883
allow_anonymous true

注意:由于之前的rabbitmq已经占用1883端口,这里创建容器时要避免冲突

sudo docker run -it --name=mosquitto --privileged \
-p 1883:1883 -p 9001:9001 \
-v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /mosquitto/data:/mosquitto/data \
-v /mosquitto/log:/mosquitto/log \
-d eclipse-mosquitto

查错参考如下链接

docker安装mosquitto2.0.14问题_蓝色格子的博客-CSDN博客_docker安装mosquitto


11 docker中安装emqx

docker run -dit --name emqx -p 18083:18083 -p 1883:1883 -p 8083:8083 -p 8084:8084 emqx/emqx:latest

参考链接

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值