Linux简介

Linux

一.简介

Linux聆听i/ˈlɪnəks/ LIN-əks)是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布[5][6],在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版,而不是自己选择每一样组件或自行设置。

Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux[7][8],但Linux不属于GNU计划,这个名称并没有得到社区的一致认同。

通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其派生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。

二.准备环境

准备环境:

Oracle VM VitualBox

CentOS7

XShell Plus

JDK8

Tomcat8

详细安装步骤见视频

三.常用命令

常用命令:

#清屏
clear
#显示文件和目录 -l:文件的详细信息,-a:列出的文件包含隐藏文件
ls
#进入到XXX目录
cd
#新建目录
mkdir
#以文本形式显示文件内容
cat
#复制文件
cp
#删除文件
rm
#生成一个内容文件
echo
#生成一个空文件
touch
#查看网络信息
ip addr
ifconfig
#测试网络连通
ping
#系统信息
uname
#主机名
hostname
#重启电脑
reboot
#立刻关机
shutdown -h now
#解压 -c:建立一个归档文件的参数指令,-z:是否需要用 gzip 压缩,-x:解开一个归档文件的参数指令,-v:压缩的过程中显示文件,-f:使用档名,在f之后要立即接档名
tar -zxvf xxx
#编辑文件 vi:系统自带编辑
#编辑模式:等待编辑命令输入
#插入模式:编辑模式下,输入i进入插入模式,插入文本信息
#命令模式:在编辑模式下,输入:进行命令模式
#常用命令 :q(直接退出),:q!(强制退出),:wq(保存后退出,并可以新建文件)
vi

防火墙配置:

#查看状态
systemctl status firewalld.service
#启动
systemctl start firewalld.service
#重启
systemctl restart firewalld.service
#停止
systemctl stop firewalld.service
#查看规则
firewall-cmd --list-all
#查询端口是否开放
firewall-cmd --query-port=8080/tcp
#开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
#移除端口
firewall-cmd --permanent --remove-port=8080/tcp

四.开发学习环境

1.安装Java

传输文件到服务器:

#lrzsz是一个xhsell传输文件的小工具,rz为上传文件到服务器,sz为下载文件到宿主机
#安装
yum install -y lrzsz
#传输jdk压缩包文件
rz

解压:

tar -zxvf jdk-8u161-linux-x64.tar.gz
#变更目录名
mv jdk1.8-161 jdk8

环境变量配置:

vi /etc/profile
# 最后一行插入
export JAVA_HOME=/usr/local/java/jdk8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
# 更新配置文件 source命令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 这些配置文件。
source profile

验证:

java -version

2.安装Tomcat

传输安装文件:

rz

解压:

tar -zxvf apache-tomcat-8.5.59.tar.gz
#变更目录名
mv apache-tomcat-8.5.59 tomcat8

启动:

#tomcat安装好之后和windows的tomcat目录一致
#进入到tomcat的bin目录启动tomcat
cd /bin
./startup.sh

停止

./shutdown.sh

Docker

Docker 简介

背景

开发和运维之间因为环境不同而导致的矛盾

集群环境下每台机器部署相同的应用

DevOps(Development and Operations)

简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到 任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。 运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏 捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7L7seTF-161460374683Linux简介_第1张图片
0)(C:\Users\Toucher\Desktop\Day01\Docker(一)]\LS03-IMG\docker1-1.jpg)

Docker优点

简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管 理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就 能完成。

避免选择恐惧症: 如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜 像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应 用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

节省开支: 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高 价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化 的方式。

容器和虚拟机

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于原生
系统支持量 单机支持上千个容器 一般是几十个

Docker 架构

Docker使用C/S架构,Client通过接口与Server进程通信实现容器的构建,运行和发布,如图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g07JHnjI-1614603746831)(C:\Users\ToucheLinux简介_第2张图片
r\Desktop\Day01\Docker(一)]\LS03-IMG\docker1-2.jpg)

Images(镜像)

将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器。

镜像分层结构:

位于下层的镜像称为父镜像(Parent Image),最底层的称为基础镜像(Base Image)。

最上层为“可读写”层,其下的均为“只读”层。

AUFS:

  • advanced multi-layered unification filesystem:高级多层统一文件系统
  • 用于为Linux文件系统实现“联合挂载
  • AUFS是之前的UnionFS的重新实现
  • Docker最初使用AUFS作为容器文件系统层
  • AUFS的竞争产品是overlayFS,从3.18开始被合并入Linux内核
  • Docker的分层镜像,除了AUFS,Docker还支持btrfs,devicemapper和vfs等

[外链图片转Linux简介_第3张图片
失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmZtUxgG-1614603746832)(C:\Users\Toucher\Desktop\Day01\Docker(一)]\LS03-IMG\docker1-3.jpg)

Docker Client(Docker 客户端)

Docker命令行工具,用户是用Docker Client与Docker daemon进行通信并返回结果给用户。也可以使用其他工具通 过Docker Api 与Docker daemon通信。

Registry(仓库服务注册)

经常会和仓库(Repository)混为一谈,实际上Registry上可以有多个仓库,每个仓库可以看成是一个用户,一个用户 的仓库放了多个镜像。仓库分为了公开仓库(Public Repository)和私有仓库(Private Repository),最大的公开仓库是 官方的Docker Hub,国内也有如阿里云、时速云等,可以给国内用户提供稳定快速的服务。用户也可以在本地网络 内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次 在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

Docker 安装

Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)。

操作系统要求

以Centos7为例,且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上。

# 查看系统内核版本信息
uname -r

一、准备

卸载旧版本:

yum list installed | grep docker
yum -y remove ...

卸载后将保留 /var/lib/docker 的内容(镜像、容器、存储卷和网络等)。

rm -rf /var/lib/docker

1.安装依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2
#安装前可查看device-mapper-persistent-data和lvm2是否已经安装
rpm -qa|grep device-mapper-persistent-data
rpm -qa|grep lvm2

2.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 清华大学源 https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
# 阿里云镜像源 https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.更新yum软件包索引

yum makecache fast

二、安装

安装最新版本docker-ce

yum install docker-ce -y
#安装指定版本docker-ce可使用以下命令查看
yum list docker-ce.x86_64 --showduplicates | sort -r
#安装完成之后可以使用命令查看
docker version
#启动
systemctl start docker
#开机自动启动
systemctl enable docker

#搜索Java
yum makecache fast

三、配置镜像加速

这里使用阿里云的免费镜像加速服务,也可以使用其他如时速云、网易云等

1.注册登录开通阿里云容器镜像服务

2.查看控制台,招到镜像加速器并复制自己的加速器地址

3.找到/etc/docker目录下的daemon.json文件,没有则直接输入命令:

(你进去doker目录是没有的 然后自己直接vi 一个 直接写)

vi daemon.json

4.加入以下配置: (加速器你去阿里运里查找)

#填写自己的加速器地址
{
  "registry-mirrors": ["https://zfzbet67.mirror.aliyuncs.com"]
}

5.通知systemd重载此配置文件

systemctl daemon-reload

6.重启docker服务

systemctl restart docker

7.再去下载Java 是非常快的

 docker pull java

Docker常用操作

输入docker可以查看Docker的命令用法,输入docker COMMAND --help查看指定命令详细用法。

镜像常用操作

查找镜像:

#搜索docker hub网站镜像的详细信息
docker search 关键词

下载镜像:

#Tag表示版本,有些镜像的版本显示latest,为最新版本
docker pull 镜像名:TAG

查看镜像:

#查看本地所有镜像
docker images

删除镜像:

#删除指定本地镜像
#-f 表示强制删除
docker rmi -f 镜像ID或者镜像名:TAG

获取元信息:

#获取镜像的元信息,详细信息
docker inspect 镜像ID或者镜像名:TAG
[root@localhost ~]# docker inspect java

容器常用操作

运行:

#--name 指定容器名,可自定义,不指定自动命名

#-i 以交互模式运行容器

#-t 分配一个伪终端,即命令行,通常-it组合来使用

#-p 指定映射端口,讲主机端口映射到容器内的端口

#-d 后台运行容器

#-v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读

docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG
[root@localhost docker]# docker run --name Tom -it -p 8080:8080 -d tomcat:7

容器列表:

#docker ps查看正在运行的容器
#-a 查看所有容器(运行中、未运行)
[root@localhost docker]# docker ps -a
CONTAINER ID   IMAGE      COMMAND             CREATED          STATUS          PORTS                    NAMES
d382838bc1c2   tomcat:7   "catalina.sh run"   17 seconds ago   Up 15 seconds   0.0.0.0:8080->8080/tcp   Tom
[root@localhost docker]# 

# -q 只查看容器的ID
docker ps -a -q

[root@localhost docker]# docker ps -q
d382838bc1c2
[root@localhost docker]# ^C

启动容器:

docker start 容器ID或容器名

停止容器:

docker stop 容器ID或容器名

删除容器:

#-f 表示强制删除
docker rm -f 容器ID或容器名

查看日志:

docker logs 容器ID或容器名

进入正在运行容器:

#进入正在运行的容器并且开启交互模式终端
#/bin/bash是固有写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。
#也可以用docker exec在运行中的容器执行命令
docker exec -it 容器ID或者容器名 /bin/bash

[root@localhost docker]# docker exec -it Tom /bin/bash
root@d382838bc1c2:/usr/local/tomcat# 
root@d382838bc1c2:/usr/local/tomcat# 
root@d382838bc1c2:/usr/local/tomcat# 

拷贝文件:

docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中
docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中

获取容器元信息:

docker inspect 容器ID或容器名

Docker容器生命周期

作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。
#也可以用docker exec在运行中的容器执行命令
docker exec -it 容器ID或者容器名 /bin/bash

[root@localhost docker]# docker exec -it Tom /bin/bash
root@d382838bc1c2:/usr/local/tomcat#
root@d382838bc1c2:/usr/local/tomcat#
root@d382838bc1c2:/usr/local/tomcat#


拷贝文件:

```shell
docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中
docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中

获取容器元信息:

docker inspect 容器ID或容器名

Docker容器生命周期

Linux简介_第4张图片

你可能感兴趣的:(java)