linux和一些docker

一。linux起源与uniux操作系统 linux分为两大派系
linux
-redhat (rpm)
-centos
-debian (deb)
-ubuntu
二。vmware网络三种模式
window主机 物理网络
虚拟机操作系统 虚拟网络 (依靠物理网络)
1 桥接模式
将vmnet0网络和本地连接的网络 进行桥接 给vmnet0设置一个静态的1段网络(arp )
优点 可以被局域网访问 局域网拥有的所有功能 虚拟机都可以获取
2 仅主机模式
这种模式 是一个特殊的nat模式 主机还是一个路由器 只能主机访问虚拟机 虚拟机不能上网
3 NAT模式(模式)
路由器模式 本机就是一个模拟的路由器 ip (192.188.48.1)
如果虚拟机中的系统 连接了这个路由器 他就可以实现和本机相同的网络操作
缺点:只能本机(window) 来访问这个虚拟

三。vmware安装centos [c[create]r[read]u[update]d[delete]] 设置网络
设置ip
ifconfig(ipconfig) 或者 ip addr
/etc/sysconfig/network-scripts/ifcfg-网卡名
vi 编辑
vi /etc/sysconfig/network-scripts/ifcfg-ens33
A【append】 表示进入编辑模式
ESC表示进入命令模式 :wq 保存退出
:q 确认是否保存
:w 保存不退出
:q! 强制退出 不保存
:set nu 给记事本添加行号
:数字 光标自动跳到指定行

onBoot=yes
BOOTPROTO=static
IPADDR=192.168.1.144
GATEWAY=192.168.1.2
DNS1=8.8.8.8
DNS2=114.114.114.114
重启网卡 (service network stop|start|restart)
关闭防火墙 (service iptables stop) centos7
systemctl stop firewalld (当前回话下 关闭防火墙)
systemctl disable|enable firewalld (禁用服务)

常用linux远程操作软件
putty|xshell|securecrt

四。 常用的文件操作
ll(查看linux当前目录下所有的文件和目录 )
文件或者目录表示(d[目录]|_[文件]|l[快捷方式]) XXX XXX OOO
属主权限(r[read]w[write]x[execute] -表示没有某一项权限) 同组权限 其他权限
属主权限 就是创建文件的用户 他拥有的权限 rwx 创建人 默认只有读和写的权限
同组权限 就是和文件创建用户相同组的其他用户权限
其他权限 就是非同一组的用户权限
新建目录 mkdir 目录名称
查看当前工作目录 pwd
查看文件 more|cat|less|tail|head-5(段落) 文件名
拷贝 cp 源文件 目标文件
删除 rm -rf 源文件
剪切 mv 源文件 目标文件
编辑文件 vi 文件名
新建文件 touch 文件名
echo 内容>文件名
vi 文件名

五 linux客户端工具 远程连接linux(ssh协议 22端口)
putty
securecrt
xshell
六 linux安装软件
1 压缩包(tgz tar.gz) zip或者rar
tomcat http://www.apache.org/
tar zxvf 压缩包
tar zcvf 压缩包.tar.gz 目录

2 rpm安装包 (可执行文件 rwx ) shell命令行 全路径 /a.rpm
JDK下载路径 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装 rpm -ivh 包名
卸载 rpm -e 包名
rpm -qa | grep 包名
3 yum安装方式(通过寻找第三方的仓库 来获取对应的rpm软件)
如果某个rpm包依赖其他rpm包 一同安装
假如 a.rpm + b.rpm
yum 安装文件上传工具
yum search sz
yum install lrzsz
rz 就是选择文件上传到linux的工作目录
yum search mariadb (mariadb是mysql被oracle收购后 最后一个开源的分支项目)
yum -y install mariadb-server
service mariadb start
mysql -uroot -p123456
docker exec -it tomcat bash

use mysql
grant all on *.* to root@'%' identified by '123456';更改权限


create user root@'%' identified by '123456';创建用户并设定密码
grant all on *.* to root@'%';赋所有权现

ls -la 查出隐藏文件

七 shell编程

1.执行脚本权限
属主权限(文件创建人) -表示去掉权限
chmod u+rwx 文件
chmod u+x 文件
属组权限
chmod g+rwx 文件
其他权限
chmod o+rwx 文件

2 变量
i=值
echo $i ${i}
arr=(“a” “b”)
arr[1]=“123”
echo $arr[1]
参数
$n表示传递的多个参数 1表示第一个参数 *表示所有参数 #表示参数的个数 0表示文件名
$?表示最近执行的shell命令 成功(0)|失败(非0) 重点

3 数学运算
#!/bin/bash
i=1+1

#如果要将某个命令的返回值 给某个变量 使用

j=expr 1 + 1

ipresult=ip addr

echo $j
echo $ipresult

#变量的运算
a=100
b=5
r=expr $a / $b
echo $r


3 流程逻辑运算
#!/bin/bash
#根据用户传入参数 start 输出启动 stop 输出停止
if [ $1 == “start” ]
then
echo “启动”
elif [ $1 == “shutdown” ]
then
echo “关机”
else
echo “停止”
fi

if [ $2 -lt 10 ]
then
echo “骚年”
fi

arr=(“hello” “你好”)
for a in ${arr[*]}
do
echo $a
done

sex=(0 1)
for a in ${sex[*]}
do
if [ $a -eq 0 ]
then
echo “男”
else
echo “女”
fi

done

#打印9*9成法表 -n不换行 默认换行
loopCount=10
i=1
while(( i < = i<= loopCount ))
do
echo -n $i
let “i++”
done

4 方法调用

#!/bin/bash
function add123(){
result=10000
result=expr $1 + $2
echo $result

参数1 和 2是数字

return ${result}
}

add123 200 200
echo "返回值是:$? "

5 io流

echo 内容 > 文件 覆盖
echo 内容 >>文件 追加

for rline in cat /shell/a.txt
do
echo $rline
done

6 错误输出处理

$ command > /dev/null 2>&1 默认是1
注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

chkconfig mariable off关闭防火墙
chkconfig mariable on 自动打开防火墙

九 nginx安装
下载 tengine http://tengine.taobao.org/download_cn.html
解压

yum -y install gcc pcre pcre-devel openssl openssl-devel
./configure
编译
make

sed -e “s|%%PREFIX%%|/usr/local/nginx|”
-e “s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|”
-e “s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|”
-e “s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|”
< man/nginx.8 > objs/nginx.8
make[1]: 离开目录“/root/soft/tengine-2.2.2”

安装
make install

将 /usr/local/nginx/sbin目录 添加到path环境变量中
vi ~/.bash_profile

PATH=:/usr/local/nginx/sbin
.生效
source ~/.bash_profile
yum install net-tools 装网络工具
nginx启动命令
nginx -m 显示所有加载的模块
nginx -l 显示所有可以使用的指令
nginx -t 检查nginx的配置文件是否正确
nginx -s start 启动nginx
nginx -s reload 重启nginx
nginx -s stop 停止nginx

linux反向代理配置
upstream a {
server 192.168.1.3:8761;
server 192.168.1.238:8761;
}

location / {
#root html;
#index index.html index.htm;
proxy_pass http://a;
}

maven项目打包



org.springframework.boot
spring-boot-maven-plugin

cn.ps.RegServerMain




执行命令打包
mvn package
打包文件位于项目 target目录下
运行
java -jar jar包名称


列表功能

location / {
root /soft;
autoindex on;
#proxy_pass http://a;
}

当访问 /路径是 自动列表显示 root指定的目录的内容


请求限制
在nopetad++里得usr+local+nginx+conf+nginx.conf;(路径)仍后在location;

deny 192.168.1.238;
allow 192.168.1.0/24;

deny 禁用访问的ip
allow 允许访问的ip

allow all

举例:
查询网站tengine.taobao在文档+文档中可以找到
deny 192.168.1.0;
allow all

意思:除了1段 以外的ip都能访问


验证

auth_basic “validation”;
创建密码文件pass,里面写root:ep4b0ILthBY/U(查询htpassword网站可以找到)
auth_basic_user_file /pass(密码那个文件).txt;

安装 httpd
yum -y install httpd

htpasswd -nb (用户名:liao 密码 :123)
将内容拷贝到/pass.txt 重启nginx


rewite模块(动静分离)
静态资源 图片 js css
动态资源 get /user/1 动态从存储或者数据库中读取 可能发生变化 (springmvc requestmapping)

所有可用的参数列表
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_core_module.html#variables
rewrite模块地址
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_rewrite_module.html

案例1
不同的浏览器语言 到不同页面
使用中文浏览器 www.baidu.com
使用英文浏览器 www.bing.com.cn

if ($http_accept_language ~ ^zh) {
return http://www.baidu.com;
}

if ($http_accept_language ~ ^en) {
return http://www.bing.com.cn;
}

案例2
动静分离
所有图片 直接从 nginx某个目录上返回
非图片路径 转向到后台(微服务 tomcat)

location ~* ^(.*).jpg|png|gif|bmp$ {
root html;
index index.html index.htm;
}

location / {
proxy_pass http://a;
}

配置中国镜像docker,目的只是加快系统下载速度
secureCRT开启一个克隆窗口
把/etc/docker/daemon.json放进去运行变成这样

“registry-mirrors”: [“https://registry.docker-cn.com“]

最后重启 docker start以后
启动
systemctl daemon-reload
systemctl restart docker

hub.docker.com
进入到容器里
docker exec -it 37de982c1cc1 /bin/bash
启用start的容器不会关机
把容器删了,镜像是不会删掉的(docker rm ID)

创建容器
aaa 是cd /和ll查询出来的目录
docker run -it -v /aaa/centos(镜像)

docker run -itdv /aaa/centos

如何使用此图片
托管一些简单的静态内容
docker run --name mynginx -v /mynginx:/usr/share/nginx/html:rw -d nginx

$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx(网站hub.docker有说明,查询nginx)
或者,Dockerfile可以使用simple 来生成包含必要内容的新图像(这是比上面的bind mount更清晰的解决方案):

FROM nginx
COPY static-html-directory /usr/share/nginx/html
将此文件放在与目录(“static-html-directory”)相同的目录中,运行docker build -t some-content-nginx .,然后启动容器:

docker exec -it mynginx /bin/bash进入到nginx

ls(查看所有)
mysql(软件) --servison(查看版本)
docker exec -it mysql(名字) /bin/bash 进入容器里
netstat -aon |grep 8080(查看是否端口被占领)
netstat -nlp |grep 8080(查看是否端口是谁占领)
kill -9 强制杀死进程
在容器里制作镜像 docker commit mytomcat(原来得镜像) 新镜像(tomcat):123
docker save 镜像迁移
docker load -i镜像还原

猜你喜欢

转载自blog.csdn.net/qq_43730299/article/details/84785745