admin管理员组文章数量:1652797
第1章 初始Linux (应林可丝)
-
Linux简介
-
Linux与Windows的区别
Linux是一款操作系统。
服务器项目部署都是放在Linux操作系统上面。
Windows是微软开发的操作系统,民用操作系统,可用于娱乐、影音、上网。Windows操作系统具有强大的日志记录系统和强大的桌面应用。好处是它可以帮我们实现非常多绚丽多彩的效果,可以非常方便去进行娱乐、影音、上网。但是如果Windows开机后,在十天或半个月不关机,之后再去操作时会发现电脑变得其卡无比。这是因为Windows操作系统在持续不断地进行日志记录以及桌面渲染大量占用了系统资源。
2. 虚拟机
虚拟机简介
虚拟机:是一台虚拟的计算机,是由软件虚拟出来的一台计算机。
在电脑上打开一个记事本软件,那么打开后的这个记事本软件就真的是自己手上的记事本吗?不是,它是一个虚拟的记事本,它是可以模拟真正记事本。比如记录一些个文字。
这时打开一个画图软件,那么我手上就真的是一个画板吗?不是,它是一个使用软件虚拟出来的画板,在上面可以实现跟真正的画板一样的功能。
3. Linux常用命令(重点)
whatis:用来查看那些命令是用来干嘛用的
语法:whatis 命令名
3.1 磁盘管理命令
1. ls命令(ll——以列表的形式查询文件夹中的内容)
² ls(list)功能:列出目录内容。
² 格式: ls[参数] [文件目录]
t1 t3 是原有的目录 简写ll
注意:文件前面的.点,代码当前是隐藏文件或文件夹。
2. 参数, -al :即能显示隐藏文件又能显示详细列表。
3.参数,-h友好展示详情信息。 ll -h
4. 命令:ll –h /sys
查看sys文件里面的目录
d开头,表示是文件夹。 -开头表示是普通文件。 l开头表示链接文件,它指向某 个文件夹里的文件,类似于桌面的QQ快捷方式。
-
cd命令
他类似于前进后退功能
cd/目录名:从任意目录中切换到指定目录中去。
cd /:切换到Linux的更目录
-
pwd 命令
pwd功能:他显示的就是当前所在的目录。会返回绝对路径
4. mkdir命令(重要)
mkdir(make directory)功能:创建目录。 创建目录或子目录。
语法:mkdir 文件夹名称
5.rmdir命令(删除空的目录)
不是空的目录是删除不了的
3.2 文件管理—文件浏览
Linux操作系统中有日志文件、XML、properties文件。
-
cat命令
cat 文件名,可以快捷查看当前文件的内容。(注:在打文件名时可以使用tab键)
cat适合查看少量信息的文件。大量信息的文件,显示不全。
-
more命令
more 文件名,可以进行分页查询文件内容。按回车键,可以查看下一页。
Enter[回车] 向下n行,默认是1行
空格键向下滚动一屏
B向上滚动一屏
=输出当前的行的行号
q退出more命令
-
less命令 (可以用来查看和编辑)
less命令,用于分页显示文件内容,而且还可以标注每行的行号。
语法:less[参数] 文件名。
参数:-m 显示类似于more命令的百分比。
-N 显示每行的行号。(大写的N)
两参数一起使用如:less -mN 文件名,如此可分页并显示行号。
操作:
空格键:前进一页或page down。
回车:向一行。
b:后退一页 或 page up。
q:退出。
d:前进半页。
u:后退半页。
i: 进入编辑
-
head 命令
语法:head -n 2 test.txt 看文件前两行的内容
5. tail命令(重点)
tail -数字 文件名, 可以快速查看文件里面的后X行的内容。
比如:tail -2 anaconda-ks.cfg 那他就会查看这个install.log文件里面的倒数两行的内容
通过命令tail -f catalina.out,是可以查看tomcat的启动日志。
Ctrl + c 退出文件查看。
6. cal 命令
3.3 文件管理-文件操作
-
touch 命令
touch Demo.java 创建文件
-
cp 命令
cp命令,复制文件或目录。
1) 复制文件:
cp 需要复制的文件 复制到哪个位置。
准备工作:在桌面创建一个文件如: Demo.java,内容: public class Demo{}。然后alt + p打开一个上传窗口,将桌面上的Demo.java拖到上传窗口中。(在root目录中)
需求1:把/root/Demo.java文件复制到 /root/t1 目录中。
位置:/root
命令:cp Demo.java t1
把文件demo.java 复制一边并改名t1
cp /root/Demo.java /root/t1 把文件demo.java 复制到/root/t1目录里面
需求2:把/root/Demo.java文件复制到 /root/t1目录中,并改名为ddd.java。
位置:/root
命令:cp Demo.java t1/ddd.java t1是目录
2.复制目录。
语法:cp –r 需要复制的文件 复制到哪个位置。
需求:把/root/t3目录 复制到 /root/cs目录中。
位置:/root
命令:cp -r t3 cs 意思是将t3目录及其所有子目录都复制到cs目录中。
cp –r /root/t3 /root/cs 将t5文件夹复制到t1文件夹中。
复制前 复制后
-
mv(剪切操作)
mv(move)功能:移动或更名现有的文件或目录。
语法:mv 需要移动的文件 移动到哪个位置。
需求:把/root/cs/t3 目录 移动到 /root/cs/cs2目录中。
文件/或者目录改名操作
mv /root/cs/cs2/11 改成22
原来目录的11被改成了22
4.rm命令(重点)
rm(remove)功能:删除文件或目录。
语法:rm 文件名, 如 rm -rf 文件名
参数:-f或--force 强制删除文件或目录。
-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。
注意:
rm -rf * 删除当前目录下的所有内容。
rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。
5.find命令
find功能: 查找文件或目录。
find [查找文件或目录名]
6. echo命令 (创建文件)
语法:echo "文本内容">文件名字
3.4文件管理-文件编辑
vim命令 (注:CenterOS 7 里面是vi命令)
l 输入”vim 文件名” 进入”一般模式”。
l 按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式”,即”编辑模式”。
l 按下”esc”从”插入模式”退出到”一般模式”。
l 在”一般模式”下,输入”:wq”,保存并退出编辑。
一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除等。
插入模式:可以编辑文件内容。
在一般模式下按”:”,冒号进入底行模式。
底行模式:可以进行强制退出操作,不保存:q!
可以进行保存并退出操作 :wq
管道命令(其实就相当于oracle中的 || 连接符号)
管道命令:可以连接多个Linux命令
管道命令的语法:命令1 | 命令2 | 命令3
| 组合键:shift + \
生活案例;净化池对蓄水池中的水进行净化。蓄水池先把水放入管道中,管道把水进行传输,最终把水传输到净化池中。净化池拿到水会就可以对水进行净化了。
管道起的作用:①传输 ②连接。
这时把蓄水池看成”命令1”,净化池看成”命令2”,管道看成”管道命令”。那么管道命令的作用是将两个命令进行连接处理。
grep 命令(模糊查询)
grep 正则表达式,用于字符串的搜索工作(模糊查询)。
语法:grep -i 需要搜索的字符串 搜索的文件即去指定文件中搜索指定字符串。
-i 是:忽略大小写查找数据 S是:需要查找的内容 -n:可以显示行数
grep命令与管道命令连用
管道命令能将两个命令连接在一起,取两个命令查询出来数据交集。
命令:ll | grep install 使用管理命令| 将ll命令与grep命令进行连接。
图上三个命令 执行了第3个
4.压缩、解压命令(难点)
-
压缩:tar命令
tar功能:文件备份压缩。
-c 建立一个压缩文件的参数指令(create) –压缩
-x 解开一个压缩文件的参数指令(extract) –解压
-z 是否需要用gzip压缩。
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在f之后要立即接档中(file)
² 常用压缩参数组合:zcvf , 格式: tar -zcvf 压缩包名字.tar.gz 需要压缩的内容
例如:tar -zcvf Demo.tar.gz *意思是将当前目录下所有内容进行打包压缩,文件名为hehe.tar.gz
*的意思就是目录下所有内容进行打包压缩
图上意思就是 吧root/t3目录给压缩 名字叫cas.tar.gz
-
解压命令(重点)
² 常用解压参数组合:zxvf
语法:tar -zxvf 需要解压的压缩包名称 --这种是解压到当前目录下。
tar -zxvf 需要解压的压缩包名称 -C 指定压缩路径 --解压到指定目录中。
准备工作:在/root目录下创建一个空的文件夹: mkdir t5,然后将Demo.tar.gz移到t5文件夹中:mv Demo.tar.gz t5。
解压到指定目录的示例:
需求:在t5目录再创建空文件夹t6,然后把/root/t5/Demo..tar.gz 压缩包解压到指定目录——/root/t5/t6中。
位置:/root/t5
命令:tar -zxvf Demo.tar.gz -C t6 第一种,相对路径
tar -zxvf Demo.tar.gz -C /root/t5/t6 第二种,绝对路径
5.系统命令
-
ps 命令(重点)
功能:ps命令是进程命令(Process Status)的缩写。提供对进程的一次性查看。
语法:ps [参数]
-e 显示所有程序
-f 显示UID,PPIP,C与STIME栏位
常用组合:ps -ef 查看系统进程
ps -ef | grep -i 进程的名字
clear清屏命令。
-
kill命令(重点)
语法:kill -9 进程号(pid) 强制终止线程
-
ifconfig命令
ifconfig命令有于查看网络配置。
注:如果是centerOS 7 是使用ip addr查看网络配置。
第2章 初始Docker容器 (Docker发音:盗抗)
2.1 Docker概念
Docker是虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境(每种容器内嵌一台Linux),容器之间互相隔离。
解析:
以前我们在linux中安装mysql或redis,其安装步骤是比较繁琐的,如按照编译源码一步一步走、编译好后再执行运行、开启服务等一大堆流程,很麻烦。并且如果某个软件在运行期间如果出现了问题并且影响了Linux系统,有可能linux安装的其他软件比如MySQL都有可能会出现问题,有了docker这些个问题都不再是问题。
Docker是基于镜像,那何为镜像,这里举一个例以前我们在安装window操作系统时,我们可以去系统之家或雨林木风下载一个window系统,使用U盘进入PE系统后,再对电脑磁盘进行分区,之后一键安装,慢慢等待直至系统安装完后,重启系统之后再在新系统中安装自己所需要的学习工具、聊天工具、游戏等,整个window才算安装完。如果某一天window出现了问题,我们又要按之前的流程把系统重新再安装一遍,实属操蛋。我们学校的结业考试系统,它就是一个镜像文件,它把window系统、学习工具、聊天工具进行了封装,我们在安装系统的时候,如果选择这个结业考试系统镜像文件,一键安装,慢慢等待直至系统安装完后,重启后我们会发现新系统中学习工具、聊天工具一应俱全。
Docker是可以去网上获取相关软件的镜像文件,获取到镜像文件后,直接基于这个镜像文件,docker可以启动一个容器,这个容器就是这个镜像的完整运行环境。所以我们以后想要安装某种运行环境,只需要在linux中安装docker,让docker去镜像市场下载相关软件所对应的镜像文件。
上图中,Registry为镜像市场,我们DOCKER_HOST(docker容器)到镜像市场https://hub.docker/ 将相关软件的镜像文件拉取到docker容器中,在images中可以罗列出当前docker容器中所有的镜像文件,而每个镜像文件又可以启动多个容器,多个容器可以组成集群,每一种容器都是一个完整的运行环境,容器之间互相隔离。
介绍完docker后,接下来我们就给自己linux中安装好docker。
2.2 安装docker
Docker安装文档:https://docs.docker/install/linux/docker-ce/centos/
2.2.1 卸载Linux操作系统中之前旧的docker(如果之前安装过)
较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
命令:(如果你不是使用root登录linux,下面命令前要加sudo,意为以管理员身份运行)
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine |
输入上述命令后,yum报未安装这些软件包,则可以进行后续docker的安装。
2.2.2 使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,就可以从存储库安装和更新Docker。
设置存储库
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker/linux/centos/docker-ce.repo |
复制上述命令,如下所示。
2.2.3 安装Docker引擎
1. 安装最新版本的Docker Engine和容器。
命令:sudo yum install docker-ce docker-ce-cli containerd.io
sudo yum install docker-ce docker-ce-cli containerd.io |
2. 启动docker
sudo systemctl start docker |
3. 通过运行docker -v 和docker images来验证是否正确安装了Docker
每次重启linux后,就要使用systemctl start docker来启动docker非常麻烦,下面我们来设置docker开机自启动。
4. 设置docker开机自启动
命令:
sudo systemctl enable docker |
至此docker安装完成。
2.2.4 为docker配置镜像加速
Docker要下载相关软件的镜像文件,默认会去https://docs.docker/ 镜像市场下载,而这个docker hub是一个国外的网站,从国外的网站下载镜像文件会比较慢的。我们配置阿里云的镜像加速,以后下载镜像文件就会比较快了。
网址:https://cr.console.aliyun/cn-hangzhou/instances/repositories 需要使用支付宝扫码登录后à产品与服务à搜索容器镜像服务
在弹出界面左侧边栏选择镜像加速器。
下述分为四条命令(四种颜色来区分),需要分别进行执行,如下图所示。
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://6ytxqy54.mirror.aliyuncs"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker |
2.3 使用docker安装软件
2.3.1 docker常用的镜像操作命令
操作 | 命令 | 说明 |
检索 | docker search 关键字 | 我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。 |
拉取 | docker pull 镜像名:tag | :tag是可选的,tag表示标签,多为软件的版本,默认是latest (是到docker hub上面摘取镜像文件) |
列表 | docker images | 查看所有本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像,image_id为镜像ID |
2.3.2 docker常用的容器操作命令
第一步使用docker pull从docker仓库拉取镜像文件。
第二步使用docker create 创建镜像文件的容器。
第三步使用docker run 运行上一步中创建的镜像文件。(其中第一步与第二步是可以合起来)
操作 | 命令 | 说明 |
运行 | docker run --name container-name -d image-name 示例:docker run --name myredis -d redis | --name: 自定义容器名 -d: 后台运行 image-name:指定镜像模板 |
列表 | docker ps (查看运行中的容器) | 加上-a 可以查看所有容器 |
停止 | docker stop container-name/container-id | 停止当前你运行的容器 |
启动 | docker start container-name/container-id | 启动容器 |
删除 | docker rm container-id | 根据容器ID删除指定容器 |
端口映射 | -p 13306:3306 示例:docker run -d -p 6379:6379 --name myredis docker.io/redis | -p: 主机端口(linux的对外端口)(映射到)容器内部的端口。 |
容器日志 | docker logs container-name/container-id & tail -f 容器id | 在启动容器时查看容器的启动日志 |
了解完docker常用的镜像操作命令和容器操作命令后,接下来使用这些命令安装软件。
2.3.3 安装 MySQL
-
下载MySQL镜像文件
docker pull mysql:5.7
如此实现从镜像仓库中拉取mysql镜像到docker容器中,然后使用 :5.7指定mysql镜像的版本为5.7。
之后使用docker images 查看当前docker容器中镜像列表,列表中就有刚下载的mysql。
镜像列表中REPOSITORY为镜像文件名,TAG镜像的版本号,IMAGE ID为镜像文件的ID。
2. 创建实例并启动
命令:
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7 |
参数说明:
-p 3306:3306: 将docker容器的3306端口映射到主机的3306端口 (前者为主机,后者为docker容器)
-v /mydata/mysql/conf:/etc/mysql:将docker容器内部/etc/mysql目录下的配置文件挂载到主机的/mydata/mysql/conf目录。
-v /mydata/mysql/log:/var/log/mysql:将docker容器内部/var/log/mysql目录下的日志文件挂载到主机的/mydata/mysql/log目录。
-v /mydata/mysql/data:/var/lib/mysql:将docker容器内部/var/lib/mysql目录下的配置文件挂载到主机的/mydata/mysql/data目录。
如上图所示,运行上述命令后,会出现一串随机数值,使用命令docker ps 查看所有正在运行的容器。
上图中CONTAINER ID为容器ID,IMAGE为运行容器所使用的镜像文件,COMMAND为运行容器的命令,CREATED创建时间,PORTS为容器内部端口映射到主机端口,NAMES为镜像文件名。
使用SQLYog连接Linux上安装的MySQL,如下图所示填入自己的IP地址,密码为root。
连接好后,如下所示。
3. Docker容器文件挂载与端口映射
上图中,docker run 为运行docker容器的命令,运行的容器与容器之间是相互隔离的,而且每一个容器是一个完整的运行环境。
1) 如何才能看出这个docker容器为一个完整的运行环境呢?
我们使用docker ps查看正在运行的容器,可以看到刚运行的docker容器,如何才能看出这个docker容器为一个完整的运行环境呢?
首先MySQL是安装到Linux系统中,所以运行后的容器其实就是一个完整的Linux。如何体现呢?我们可以进行到这个MySQL容器的内部,命令:docker exec -it 容器ID /bin/bash
在上图中MySQL容器ID为d2370efc6067,那么进入到MySQL容器内部的命令为docker exec -it d2370efc6067 /bin/bash,进入到MySQL容器内部后,再使用命令:ls / 查看MySQL容器内部的目录结构,明显可以看出这个目录跟Linux系统的目录相仿,所以讲MySQL容器就一个完整的Linux。
2) 查看Mysql被安装到MySQL容器中的哪些个目录。
命令:whereis mysql 查看mysql被安装到MySQL容器中的哪些个目录里。
3) 解析运行容器命令中的-p 3306:3306
在MySQL容器中,会有一个默认的3306端口,但是这个3306端口是在MySQL容器内部。如果我们想要访问这个MySQL容器中的mysql,就需要把容器内的端口映射到外部的Linux主机中,命令中的-p 3306:3306意思为主机中的3306端口与MySQL容器内的3306端口号一一对应,即我们访问linux主机中的3306就能够访问到MySQL容器中的3306端口号。
4) 解析运行容器命令中:-v /mydata/mysql/conf:/etc/mysql
将MySQL容器内部/etc/mysql目录下的配置文件挂载到主机的/mydata/mysql/conf目录。
在挂载之前我们需要进入到MySQL容器中的/etc/mysql目录下,才能对此目录下的mysql配置文件进行修改,如此会比较麻烦,这时我们希望将容器内部经常要看的文件夹或文件映射到Linux主机的相关目录中。
运行容器命令中的其他命令基本也差不多。最后输入exit可以退出容器。
4. 设置mysql开机自启
命令:
sudo docker update 容器名称 --restart=always
1) 查看当前mysql的容器名称或容器ID,命令:docker ps -a
如上图所示,当前mysql的容器ID为7ed0f191e09f,每个同学的容器ID会不一样。
2) 命令:sudo docker update 7ed0f191e09f --restart=always
2.3.4 安装redis
-
下载redis镜像文件
docker pull redis #拉取最新版本的redis
再使用docker images命令,查看当前docker容器中所有的镜像文件。
版权声明:本文标题:docker容器技术和Linux文档学习笔记 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729613138a1208003.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论