Linux命令
- 用户切换
- su [名字] ``` [li@bogon ~]$ su root 密码: [root@bogon li]# su li [li@bogon ~]$
- 查看本机ip地址- ip addr- ifconfig- 删除文件- rm -rf- 删除乱码文件- 获取乱码文件的inode号:ls -li- 删除或重命名乱码文件- 删除:find . -inum 116916277 -exec rm -rf {} \;- 重命名:find . -inum 116916277 -exec mv {} \;- <br /><a name="ujfrd"></a>### <br /><a name="cbsZd"></a>### Xshell- 在学习Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xshell工具进行文件传输- 首先连上一台Linux主机- 输入rz命令,看看是否安装了lrzsz,如果没有安装则执行如下命令进行安装。
yum -y install lrzsz
备注:lrzsz是一款在linux里可代替ftp上传和下载的程序。- 安装成功后,输入rpm命令确认是否正确安装:rpm -qa lrzsz- 使用rz-y命令进行文件上传,此时会弹出上传的窗口<a name="cAFsA"></a>### JDK安装<a name="wU9Ab"></a>#### 1、上传JDK- 在usr下创建software目录,将所有的软件放置于software目录下,命令如下:```shellmkdir /usr/software
- 使用如下命令切入到software目录下:- ls /usr查看文件夹
cd /usr/software
- 使用Xshell,输入以下命令,将下载好的jdk上传到CentOS中:rz -y
2、查看JDK是否安装过
- 安装之前查看是否有旧的jdk,命令如下:
java -version
- 若已安装 使用下面命令查看jdk安装包名称
rpm -qa|grep jdk
- 卸载旧的jdk
rpm -e jdk全名
3、安装JDK
- 输入命令将文件jdkxxxx进行解压:
tar -zxvf /usr/software/jdkxxxx
- 解压如果报错- 你的压缩包后缀名是否是 .tar.gz
gzip: stdin has more than one entry--rest ignoredtar: Child returned status 2tar: Error is not recoverable: exiting now
- 没有unzip 安装
yum install unzip
- 然后解压
unzip xxxx.zip
4、配置JDK
- 输入以下命令修改配置文件,用来配置JDK环境变量:vi/etc/profile- 输入i进入编辑状态,然后将光标(可以使用快捷键shift+g)移到最后一行,粘贴如下内容- export JAVA_HOME=/usr/sftware/jdk1.8.0_181- export PATH=$JAVA_HOME/bin:$PATH- 要根据自己解压目录设置- 输入ESC退出编辑模式 输入:wq!保存并强制退出- 输入以下命令,使配置文件生效:source /etc/profile- 备注:- export命令- 功能说明:设置或显示环境变量- 语法:export [-fnp][变量名]=[变量设置值]。- 选项:- -f:代表[变量名称]中为函数名称:- -n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。- -p:列出所有的shell赋予程序的环境变量。- 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用- 解释上面的命令如下:- $PATH:决定了shell将到那些目录中寻找命令或程序- :冒号时分隔符,相当于Windows中PATH环境变量路径之间的分隔符时;(分号)
Docker
Docker是什么
- Docker是一个基于LXC技术构建的容器引擎,基于GO语言开发,遵循Apache2.0协议开源- 和虚拟机的区别
Container-Image
- Container- Docker Container(容器)即Docker将宿主机隔开的一个个独立空间- Image- Docker Image(镜像)可以看作是一个特殊的文件系统,即对某一时刻容器状态的备份
Docker Registry
- Registry- https://hub.docker.com/- https://dev.aliyun.com/search.html- https://c.163yun.com/hub#/m/home/
运行原理
网络和端口映射
- 网络配置- host 模式- container 模式- none 模式- bridge 模式,默认- --net=(具体模式名称)- 端口映射- -p
安装Docker
- 若你安装过docker,需要先删掉,之后在安装依赖:
sudo yum remove docker docker-common docker-selinux docker-enginesudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 根据版本的不同,下载repo文件。
wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
- 软件仓库位置替换为:
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
- 更行索引文件并安装
sudo yum makecache fastsudo yum install docker-ce
- 启动docker服务
systemctl start dockerservice network restart
使用docker
- docker容器操作- 生成容器(run = pull+create+start+exec)- docker run -d -p 8888:8080 --name tomcat-test tomcat- 查看容器- 查询正在运行的容器:docker ps|grep 容器关键词- 查询全部(包括已停止)的容器:docker ps -a|grep 容器关键词- 进入容器- docker exec -it containerId/containerName /bin/bash- pwd查看目录- 进入webapps目录- 退出容器- exit- 更改容器名称:docker rename 原名 新名- 语法:docker run -d -p 7001:8080 --name t25tom tomcat- 关闭容器:docker stop t25tomcat- 启动容器:docker start t25tomcat- 删除容器:docker rm t25tomcat- 拷贝文件:docker cp 宿主机目录及文件 容器名称 : 容器目录- 打包文件,解压文件:unzip app.zip- docker cp /usr/software/app/ t25tomcat:/usr/local/tomcat/webapps/- create创建容器- docker create -p 7002:8080 --name t25-tomcat tomcat- docker镜像操作- 查看docker镜像:docker images- 搜索镜像:docker search 镜像关键词- 镜像拉取:docker pull [OPTIONS] NAME[:TAG|@DIGEST]- 镜像删除:docker rmi 镜像Id或镜像名称- 数据卷- -v:自动同步,容器和外部是同步的- docker run -d -p 7002:8080 -v /usr/software/app/:/usr/local/tomcat/webapps --name tomcat01 tomcat- 创建文件:touch aa.html- link方式创建容器- docker run -d -p 7003:8080 --name tom --link tomcat01:tom01 tomcat
指定IP
- 动态IP- 固定IP- 创建网络,指定网段- docker network create --subnet=172.18.0.0/16 mynetwork- 创建容器,指定IP- docker run -it -d --net mynetwork --ip 172.18.0.8 --name mytomcat tomcat
创建MySQL
- 创建MySQL容器
docker run -di --name mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- -p:代表端口映射,格式为 宿主机映射端口号:容器运行端口- -e:代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码- 可能遇到的问题- 这个时候使用客户端连接工具连接的话,会遇到: Client does not support authentication protocol 的错误。
解决办法是设置远程登录,让我们继续。
- 设置远程登录- 进入MySQL容器,登录MySQL- <br />
创建 nginx容器
- 创建本地目录- 在docker目录下创建nginx文件夹,然后在nginx文件夹内创建以下目录- conf:存放nginx配置- www:存放nginx站点数据文件- log:存放nginx运行日志- 准备本地目录文件- nginx配置文件- 先临时创建一个nginx容器,将容器内的nginx配置文件复制到本地,后面根据实际需要调整本地宿主机的配置文件,并将本地配置文件挂载到nginx容器内部,nginx容器内配置文件目录为/etc/nginx。操作命令如下- 创建临时容器:docker run --name tmpnginx -d nginx- 赋值容器内的配置文件目录到本地文件目录:docker cp tmpnginx:/etc/nginx /var/lib/docker/nginx/conf- 删除临时容器:docker rm -f tmpnginx- nginx配置文件复制到本地后做相应调整,假设本地的/var/lib/docker/nginx/www目录内包含多个站点,目前只放一个站点site1,nginx容器使用site。.先备份默认的nginx配置文件/var/lib/docker/nginx/conf/nginx/conf.d/default.conf为/var/lib/docker/nginx/conf/nginx/conf.d/default.conf.bak,然后调整/var/lib/docker/nginx/conf/nginx/conf.d/default.conf内容如下,使站点首页指向site1站点内的index.html页面:
server {listen 80;server_name localhost;#charset koi8-r;#access_log /var/log/nginx/host.access.log main;location / {root /usr/share/cups/www/site1;#修改这里index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}}
- 站点静态文件- 在/var/lib/docker/nginx/www目录下放置site1文件夹,文件夹内存放静态站点文件,文件内容可根据具体情况而定。- nginx文件目录结果- 经过上面两个步骤,nginx文件夹下目录结构如下图
[root@192 nginx]# tree.├── conf│ └── nginx│ ├── conf.d│ │ ├── default.conf│ │ └── default.conf.bak│ ├── fastcgi_params│ ├── mime.types│ ├── modules -> /usr/lib/nginx/modules│ ├── nginx.conf│ ├── scgi_params│ └── uwsgi_params├── log└── www└── site16 directories, 8 files
- 创建nginx容器- 上一步骤中准备好所有文件后,创建正式的nginx容器,命令如下
docker run -d -p 8888:8080 --name ng -v /var/lib/docker/nginx/conf/nginx/:/etc/nginx/ -v /var/lib/docker/nginx/log/:/var/log/nginx/ -v /var/lib/docker/nginx/www/:/usr/share/www/ nginx
