SSH服务
在linux 中SSH 是非常常用的工具,通过ssh客户端,我们可以连接到运行了SSH服务器的远程机器上(服务器、电脑)
SSH协议: 是目前较可靠的,专为远程登录会话和其他网络服务提供一个安全的协议。
利用SSH协议,可以有效的防治远程管理过程中信息泄露。
SSH的另一个优点,传输数据是可以进行压缩的,传输速度快。
- SSH 远程控制加密协议
- Windows 下查看 ip地址: 使用 ipconfig 命令。
- linux 下查看当前电脑的ip地址: ifconfig。
- 测试客户端和服务器是否能连接
ping 客户端、服务端ip地址。
服务器如果安装了ssh
rpm -qa|grep package
例如 rpm -qa|grep openssh 列出包含 openssh 软件信息。
Ssh 默认会有一个守护进程在后台监听服务器端口(22),如果有访问进行信息交互。
Ssh命令可以用来执行远程登录
使用客户端ping 服务端,查看是否能ping 通。
- 远程登录服务端格式:
ssh user@remote
user 是在远程机器上的用户名
remote 是远程机器的地址
- 密码免登陆(秘钥登录)
扩展: 非对称加密算法
使用公钥加密的数据,需要使用私钥解密。
使用私钥加密的数据,需要使用公钥解密。
秘钥登录
首先,在本地通过算法生成公钥,然后将公钥发送给要登录的远程主机。在登录的时候, 本地使用私钥登录,忽略密码进行登录。
生成秘钥
ssh-keygen -t rsa
.ssh目录
Id_rsa私钥
Id_rsa.pub 公钥
复制一份公钥,发送给服务端到.ssh目录下
扩展: scp 命令 通过ssh机制进行文件的拷贝
复制文件(本地>>远程):scp /cloud/data/test.txt root@10.21.156.6:/cloud/data/
格式: scp 本地文件 root@10.10.42.92:/root/.ssh
复制文件(远程>>远程):scp root@10.21.156.6:/cloud/data/test.txt /cloud/data/
复制目录(本地>>远程):scp -r /cloud/data root@10.21.156.6:/cloud/data/
复制目录(远程>>本地):scp -r root@10.21.156.6:/cloud/data/ /cloud/data/
Sftp是ssh文件传输协议
源 目的
Put 本地 远端
Get 远端 本地
Xshell
Xshell是一个远程的控制软件,使用ssh协议
Xftp 是一个远程文件传输的软件,使用stfp协议
- 创建主机
- 登录
Sftp可以直接打开使用或者在xshell上使用,步骤类似xshell
Docker
虚拟化技术
- Anaconda
- VM
- docker
- 什么是虚拟化
虚拟化是一种资源管理技术,将计算机上的各种实体资源,如:服务器,网络,内存,存储进行抽象,转换后呈现出来,打破实体结构之间不可切割的障碍,使用户以更好的组态使用资源。
Vm可以虚拟化。
容器技术:在计算机上虚拟出独立的一块空间。
Vm虚拟化:需要虚拟整个计算机
容器技术:是基于物理计算机内核
容器虚拟化:
- 容器可以制造一个权限隔离监牢。
./当前目录 …/上一层 - 执行效率高,容器技术,在计算机系统当中只是一个进程,使用 方便,效率更高
- 方便部署,更容易保持程序运行环境的一致性。
- Docker组件
Docker是一个c/s结构
Server 服务:Server端存储镜像
Client 客户:Client 进行镜像的下载,使用,上传
- Image 镜像
镜像是构建docker的基石,docker把应用程序及依赖关系包,打包到镜像文件当中,通过这个文件生成docker容器,image可以说是容器的模板。
Docker镜像是有文件系统叠加而成的,底端是一个文件引导系统,在容器运行起来的时候,引导系统被卸载,留出更多的空间给磁盘镜像使用。
Docker安装与基本使用
Docker可以运行在windows上,linux上。
Centos系统对docker支持友好,centos上docker运行稳定。
其他系统,docker需要到官网下载,解压,安装
Centos yum源自带docker
-
所以在centos上docker安装:
yum -y install docker
-
查看是否安装成功
Yum list installed |grep docker
-
启动docker
Docker 在centos当中是一个服务,所以启动的命令是
Systemctl start docker
-
Docker 命令 查看版本
Docker version
-
查看镜像
Docker images
Repository 仓库
Tag 标签
Image id 镜像id
Created 创建时间
Size 镜像大小 -
拉取第一个镜像
Docker pull imgname
-
修改docker源(中国科技大学)
Docker配置文件
然后添加修改
重新启动docker
重新下载:
-
启动镜像
查看,当前没有mysql服务
检查网络
Sysctl net.ipv4.ip_forward
如果不是,进入 /etc/sysctl.conf下修改配置文件
添加
Net.ipv4.ip_forward= 1
然后重起网络
Sysctl restart network
-
创建容器
Docker create -it --name mysql8.0 mysql(镜像id) /bin/bash
Create 创建
-i 交互式
-t 容器启动后会进入命令行,-i和-t一起运行容器创建之后就能登录进去,并且分配 一个伪终端
docker create -it --name mysql8.0 91dadee7afee /bin/bash
-
启动镜像
Docker start -ai mysql8.0
Start 开始
-a 将当前的输入/输出链接到容器上
-i 将当前的输入链接到容器上
-
退出容器
exit
-
创建并启动容器
Docker run -dit --name=mysql8.0 91daddee7afee /bin/bash
Run 运行
-d 守护容器,容器当中的程序需要长期运行的时候,我们可以创建一个守护式的容器,就算exit也不会停止。
常用守护参数的
Mysal
Nginx
Apache
tomcat
-i 交互式
-t 容器启动后会进入命令行,-i和-t一起运行容器创建之后就能登录进去,并且分配 一 个伪终端
-
进入容器
Docker exec -it mysql8.0 /bin/bash
exec 进入容器
-i 交互式
-t 容器启动后会进入命令行,-i和-t一起运行容器创建之后就能登录进去,并且分配 一 个伪终端
/bin/bash进入执行的第一个命令
退出容器用exit
若报错:
容器的常规管理
Container 容器 -
Docker container ls 列出运行的容器
Container ID 容器id
Image 镜像id
Command 命令
Created 创建时间
Status 状态
Up 启动状态
Exited 退出状态
Ports 端口/协议
Name 容器的名称 -
Docker container ls --all 列出所有的容器
-
dcoker container stop 容器id或者容器名称 停止运行容器
-
dcoker container start 容器id或者容器名称 开始运行容器
-
docker container kill 容器id或者容器名称 杀死容器
-
docker container rm 容器id或者容器名称 删除容器
镜像打包及提交
首先,我们基于当前的容器进行了修改,比如:
我们首先创建了一个Ubuntu的容器,然后在容器当中安装了python3,安装了Django框架, 安装NGINX服务器,安装了mysql数据库,安装…其他的python web开发工具。然后将该 容器修改完成的镜像进行打包然后提交
- Docker commit [参数] 容器名 镜像名
-a 作者
-c 为创建的镜像假如dockerfile命令
-m 描述
Docker commit -m “我的docker镜像”
-p 提交时暂停容器
1、注册docker账号
2、向docker库提交镜像
我们提交的是镜像,实际上是我们用户修改过的容器当中的镜像
1、Docker container ls -all 查看所有的容器
2、登录docker hub
Docker login --username=username
Password:密码
successed
3、docker commit -m “镜像描述” -a“作者” 容器名称或者id 远程库的名字:上传到 docker hub上的名字
比如
docker commit -m “docker测试提交镜像” -a “Alex”
721b061fe45c Alex/study:djangoTesting
4、docker tag 镜像id 远程库的名字:上传到docker hub上的名字
#将镜像,容器和远程库进行标识
docker tag 32260605cf7a Alex/study:djangoTesting
5、docker push 远程库的名字:上传到docker hub上的名字
#将于远程库有标识关系的库提交
docker push Alex/study:djangoTesting