Linux学习笔记

@雨谷

2021年5月12日14:14:48

内容回顾:

# 2021年5月12日14:14:48 

##  内容回顾:
mkdir dirName  创建文件夹
touch fileName 创建文件
cat fileName  查看文件
mv filename path 将 filename 移到指定path下
cp filename path 将 filename 复制一份到path下
rm filename 删除指定的filename文件
	rm -r filename	可删除文件夹
	
rmdir 删除指定的dir


打包 : .tar
压缩 : .tar.gz
$ tar -cvf fileName .tar.gz fileName1 fileName2 ...
$ tar -xvf fileName .tar.gz 
$ tar -xvf test.tar.gz -C ../temp/

zip/unzip
$ sudo apt install zip unzip

查找文件 find
$ find 要查询的起始路径 -name 文件名称
$ find 要查询的起始路径 -size 文件大小 -type f

搜素文件中内容 grep
$ grep -r -n KeyWord 起始路径

vi / vim 
	1.普通模式
			yy 复制
			yny
			p  粘贴
			dd 删除
			dnd 
			u  恢复至上一步
			{
			}
			[[
			]]
			
			进入编辑模式
			a
			i
			o
			r
			
			进入末行/指令模式
			:
			/
			?
	2.编辑模式
    3.末行模式/指令模式
     		替换
     		:set number
     		
     		:w   保存
     		:q   退出
     		:wq  保存退出
     					!  加感叹号表示强制 ,如强制退出
     					
 			:keyword   多个关键字时 按 n 跳转光标至next关键字 
            
            :s/keyword/content  搜素关键词 替换为指定内容
            :s/keyword/content/g
            :1,$s/keyword/content/g
            
ESC            

Linux系统目录:
/   		操作系统的根目录
/bin 		存放二进制文件
/sbin 		存放系统二进制文件
/dev		存放逻辑设备名的主目录
/etc		存放系统所有程序的所需的配置文件
/proc  		进程信息 包含系统进程的相关信息
/var 		变量文件,该目录用于存放内容可能增长的文件,如系统日志文件(/var/log)
/tmp		临时文件,当系统重新启动时,该目录下的所有文件都会被删除
/usr		用户程序,包含二进制文件,库文件,文档和二级程序的源代码
/home		存放所有用户的个人档案
/boot		存放引导加载程序相关的文件
/lib  		存放支持位于/bin和/sbin下的二进制文件的库文件
/opt 		存放可选的附加应用程序
/mnt		挂载目录:临时安装目录



- 文件
d 目录
b 块设备
c 字符设备文件
l 链接  
	链接的类型:
		软链接 : 原内容的快捷方式  ln -s src desc
				源文件被删除后,软链接失效
		硬链接 : 原内容的一份复制品 ln src desc
				源文件删除后

2021年5月13日08:35:44

knowledge review:

#2021年5月13日08:35:44

/bin				存放二进制文件
/etc				存放系统所有程序的所需的配置文件
/etc/init
/ect/rc[0~6].d
/mnt				挂载目录:临时安装目录 	
/usr
/var
/tmp

touch 文件名  		创建文件
mkdir 文件夹名	    创建目录

链接:
ln -s src desc    创建软连接 	快捷方式, 源被删除,软连接失效,可以创建目录的软连接
ln src desc    	  创建硬链接		复制源文件,源被删除,对硬链接无影响,不能对目录创建硬链接



ll /etc/rc0.d   查看部分软链接     rc0.d ~ rc6.d  都存放链接



用户账户和组:

/etc/passwd			存放用户信息
		
			yugu:x:1000:1000:MyUbuntuServer,,,:/home/yugu:/bin/bash
			
			用户名(1~8位字符):占位符(x):UID(user id):GID(group id)
			
			UID :
            		系统管理员账号 : 0~120 
            		普通权限账号   :1001~60000 
            		
/etc/shadow			存放密码信息    shadow --> 影子

			yugu:$1$4S0d.u/5$ao3/sdx9h4qGRtq2YOkFJ0:18754:0:99999:7:::
			
/etc/group			存放用户组信息
			yugu:x:1000:
			lpadmin:x:114:yugu 
			
			-g 主组
			次组:最多可以拥有15个用户
			
			tony
				uid = 2000
				gid = 2000
				
				
管理用户和组
	1.管理用户
		添加用户
		$ useradd [-u uid] [-G gid...] [-c "Comment"] -d PATH/HOMEDIR -m UserName
        注意点:创建用户时记得指定home目录,方便后面的修改操作,否则很麻烦
        sudo useradd -u 1001 -c "my second username" -d /home/dark -m -s /bin/bash dark
        
		$ passwd yugu2
		
		修改用户
			$ usermod
			
			sudo usermod -m -l newName oldName
			
		删除用户
			$ userdel
			sudo userdel -r UserName
	2.管理组
		添加组
		$ groupadd
			groupadd -g Gid GroupName
		修改组
		$ groupmod
			groupmod
		删除组
		$ groupdel
		
		
修改当前登录用户的密码  passwd
					oldPassword
					newPassword
					当前用户修改密码时不能太简单,1~6无法在当前用户修改了,
					更改到另一个账户
				sudo passwd root 		
                passwd yugu
           
           shutdown -h now
           shutdown -r now
           reboot
           poweroff 

2021年5月14日08:42:40

#2021年5月14日08:42:40
#内容回顾
/etc/passwd
/etc/shadow
/etc/group

#用户管理
	useradd
		$useradd [-u uid] [-g gid] -d HomeDir -s /bin/bash -m [-c Comment]
	usermod
		$usermod -l NewUserName OldUsername
	userdel
		$userdel -r UserName

#组管理
	groupadd 
		$groupadd [-g gid] [-o] GroupName
	groupmod
		$groupmod [-g NewGid] [-o] [-n NewGroupName] GroupName
	groupdel
		$groupdel [-R] GroupName


 
	#任务调度
	#启动级别
	lrwxrwxrwx  1 root root   23 May  7 06:33 S01open-vm-tools -> ../init.d/open-vm-
	lrwxrwxrwx  1 root root   20 May  7 14:30 K01irqbalance -> ../init.d/irqbalance*
	
		$runlevel
		3/5
			3:直接进入命令行提示符
			5:Xll(GUI)
			6:关机
		init 0
        S: start
        K: kill
        
        服务状态:
        	启动    start
        	暂停	  pause
        	停止	  stop
        	状态	  status
        	重启	  restart

		CMOS
		
		任务调度
		命令格式:
			* * * * * command (分 时 日 月 周 命令)
			
		编辑任务调度 : $crontab 
        usage:	crontab [-u user] file
                crontab [ -u user ] [ -i ] { -e | -l | -r }
                    (default operation is replace, per 1003.2)
                -e	(edit user's crontab)
                -l	(list user's crontab)
                -r	(delete user's crontab)
                -i	(prompt before deleting user's crontab)
                
	 	关闭进程 
                $ps -l
                $ps -ef
                $ps -aux
                $kill Pid   
                $top -d 10
                

	Shell 
		Shell 提供了用户和Linux(内核)交互的一个接口
		
		用户程序 --> Shell --> 内核 --> 硬件
		

2021年5月18日08:38:39

#内容回顾

/etc/init.d
/etc/rc[0~6].d    均为软链接文件,链接到 /etc/rc.d/rcx.d 目录,文件格式相同,都以S或K开头。。。

S: start
K: kill
#启动级别: runlevel      
			0     关机
			1	  单用户
			2 	  多用户,不支持NFS
			3     多用户,支持NFS
			4	  未使用
			5 	  GUI图形界面
			6	  重启
			可以用 init Nubmer  更改启动级别

$ top    实时的监控系统状态信息和进程所使用的资源,显示进程的数据:包括PID,进程所属,优先级。。。
$ ps 	 列出系统中当前正在运行的进程,瞬时状态,类似快照	 Process Status 的缩写
	-a    与-e 类似的效用 显示所有的进程
	-f	  做一个更完整的输出
	-ef   查看所有进程
	-aux  显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER,PID,%CPU,%MEM等

$kill PID 结束指定Pid的进程,
usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


$crontab 	任务调度 		系统周期性要执行的工作或某个用户定期要做的工作
            -e	编辑任务调度
            -r  终止任务调度
            -l	列出当前有哪些任务调度
            
            
 文件名后缀为 .bak的文件 :备份文件 
文件管理(访问权限)
	第一个字符是 	.  代表为隐藏文件
				
	ls -a --> ll
	
	  		 
-rw-r--r-- 1 yugu yugu  655 May 17 04:32 .profile
drwxrwxr-x 3 yugu yugu 4096 May 17 00:24 software/


文件类型 + 访问权限 + 硬链接数量 + 所属用户 + 组 + 大小 + 修改时间 +文件名

文件类型:
		d:目录
		-:普通文件
		l:软连接
		b:块设备文件
		c:字符设备文件
rw- --- --- :三个字符为一组,共三组
		第一组: 指定当前所属用户的访问权限
		第二组: 指定了组访问权限
		第三组: 指定了其它用户的访问权限
		
r: read   可读权限    4
w: write  可写权限    2
x: excute 可执行权限	 1
-:        拒绝访问

root用户没有任何访问权限的限制

	如果文件本身是目录的话:
		1.没有x权限,代表该目录不能使用cd命令进入
		2.没有w权限,代表该目录中不能创建/保存文件


$chmod  修改文件权限  

usage: chmod 权限 FileName
	1.权限符号
			a: all
			g: group
			o: other
			u: user
	chmod a+w test.txt  所有用户增加 写权限
    chmod a-rwx t1.txt  所有用户删除读写执行权限
    chmod u+rwx,o+r,g+rx t1.txt  复杂单独权限制定用逗号隔开
    chmod a=r,u+wx,g+x t1.txt  复杂单独权限制定用逗号隔开
	2.权限八进制数值
      r: 4
      w: 2
      x: 1
      -: 0
     chmod 777 t1.txt 所有用户添加读,写,执行权限
     第一个7代表当前所属用户权限:对应 r+w+x 即 rwx
     第二个7代表当前所属用户所在组权限:对应 r+w+x 即 rwx
     第三个7代表其它组用户权限:对应 r+w+x 即 rwx
     chmod 754 t1.txt 
			

  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively
      --help     display this help and exit
      --version  output version information and exit


$chown  更改文件主权(拥有者 组)
	sudo chown [-R] 所属用户名:组名 FileName

	sudo chown -R root:root temp/
     -R recursive 递归更改主权
     
软链接
	$ln -s src desc  

硬链接
 	$ln src desc
 	
软硬链接的区别:
 	软链接是以路径的形式存在,硬链接是以文件副本的形式存在,但不占用实际空间。
 	软链接可以跨文件系统,硬链接无法跨文件擦护功能键	
 	可以对目录创建软链接,但不能对目录创建硬链接
 	可以对不存在的文件创建软链接,但不能对不存在的文件创建硬链接
 	
 	

2021年5月19日14:09:06

内容回顾

文件管理
	
	
	文件类型 访问权限 所属用户 用户所在组 其它用户 大小 时间 文件名
	d - l b c   目录,普通文件,软链接,块,字符
	r,w,d,-		读,写,执行,无权限   4,2,1,0
	a,u g o  所有用户,用户,组,其它用户 :all, user ,group ,other


更改权限和主权: chmod chown
$chmod [-R] 权限 文件名  
权限: 权限符号  a u g o
	 权限数值 4,2,1,0
	 
$chown [-R] 所属用户名:组名 FileName

sudo chown -R root:root temp/
     -R recursive 递归更改主权
     
     
软硬链接 ln -s src desc
		ln src dec

2021年5月19日14:18:14

网络服务		
/etc/network/interfaces

网络协议
TCP/UDP		
	TCP:面向连接的,可靠的网络传输协议,打电话
	UDP:非面向连接的,不可靠的数据包协议,发短信

网络节点
	网络设备:计算机(无论个人电脑或服务器)路由器,交换机,网桥,网关
    早些年有用集线器
    
IP地址:Internet Protocol Address 互联网协议地址


ipv4和ipv6   

IPv4	Internet Protocol version 4  
		32位的二进制数,如: 192.168.1.119
IPv6	Internet Protocol version 6
		128位的二级制数,如:fe80::b47a:2fc9:72e1:b80b%5



IP地址被分为以下四类地址,
	A:	1字节的网络地址+3字节主机地址组成,1.0.0.1~127.255.255.254
	B: 	2字节的网络地址+2字节主机地址组成,128.0.0.1~191.255.255.254
	C:	3字节的网络地址+1字节主机地址组成,192.0.0.1~223.255.255.254
	D:	(multicast address)组播地址, 224.0.0.0~239.255.255

子网:NetMask 从逻辑上把一个大网络划分为一些小网络。
对于传统IP地址分类来说,
        A类的子网掩码为:255.0.0.0
        B类的子网掩码为:255.255.0.0
        C类的子网掩码为:255.255.255.0

超网:Supernetting 同子网类似的概念
	通过较短的子网掩码将多个小网络合成一个大网络
	例如:一个单位分到了8个C类地址:202.120.224.0~202.120.231.0
		只要将其子网掩码设置为255.255.248.0,就能使这些C类网络互通
		
IP地址管理: 手工管理模式,DHCP管理模式,交换机管理模式		







$apt :Advanced Package Tool,又名apt-get,是一款适用于Unix和Linux系统的应用程序管理器
#更新
	apt-get	update  更新安装源
	apt-get	upgrade 更新已安装的软件包
	apt-get	dist-upgrade 更新已安装的软件包(自动识别并处理依赖关系的改变)
#查询	
	dpkg -l        列出已安装的所有软件包

	apt-cache search PackageName       搜索软件包
	apt-cache show PackageName         获取软件包的相关信息, 如说明、大小、版本等

	apt-cache depends PackageName      查看该软件包需要哪些依赖包
	apt-cache rdepends PackageName     查看该软件包被哪些包依赖

	apt-get check                      检查是否有损坏的依赖

#安装与下载
    apt-get install PackageName                 // 普通安装
    apt-get install PackageName=VersionName     // 安装指定包的指定版本
    apt-get --reinstall install PackageName     // 重新安装

    apt-get build-dep PackageName               // 安装源码包所需要的编译环境
    apt-get -f install                          // 修复依赖关系

    apt-get source PackageName                  // 下载软件包的源码

#卸载
    apt-get remove PackageName              // 删除软件包, 保留配置文件

    apt-get --purge remove PackageName      // 删除软件包, 同时删除配置文件
    apt-get purge PackageName               // 删除软件包, 同时删除配置文件

    apt-get autoremove PackageName          // 删除软件包, 同时删除为满足依赖
                                            // 而自动安装且不再使用的软件包

    apt-get --purge autoremove PackageName  // 删除软件包, 删除配置文件, 
                                            // 删除不再使用的依赖包

    apt-get clean && apt-get autoclean      // 清除 已下载的软件包 和 旧软件包


Ubuntu虚拟机更换国内阿里源

2021年5月20日10:58:58

$su root #提权,
$cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份一份原来的源
$vim /etc/apt/sources.list # 修改源 全部删除换成阿里源,d100d i 粘贴 :wq
$apt-get update #更新列表

#tips:每个Ubuntu系统版本不同,代号也不一致
$cat /etc/issue  # 查看当前系统版本
Ubuntu 16.04.7 LTS \n \l


#Ubuntu 12.04 (LTS)代号为precise。
#Ubuntu 14.04 (LTS)代号为trusty。
#Ubuntu 15.04 代号为vivid。
#Ubuntu 15.10 代号为wily。
#Ubuntu 16.04 (LTS)代号为xenial。
#这里我的环境是  Ubuntu 16.04.7 LTS \n \l 所以选择 代号为xenial的阿里源
#aliimage 2017.9.18

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse


Ubuntu虚拟机下载安装 mysql

2021年5月19日20:33:04

#获取最高权限,更新安装源和软件包
su
apt-get update
apt-get dist-upgrade
#没安装过的话直接安装,安装过的先卸载原来的mysql
#apt-get --purge remove mysql

#安装mysql服务端,客户端,库包 可能出现设置密码
apt-get install mysql-server
apt-get install mysql-client
apt-get install libmysqlclient-dev

#输入如下命令进行检验是否安装mysql成功。
netstat -tap | grep mysql

root@ubuntu:/home/yugu# netstat -tap | grep mysql
#如图为安装成功
#tcp       0     0 localhost:mysql       *:*    LISTEN      23360/mysqld 

#编辑mysql配置文件 开启远程访问
vi /etc/mysql/mysql.conf.d/mysqld.cnf
#注释掉 bind-address=127.0.0.1 后保存退出

#进入mysql服务 密码是之前设置的,如果没设置的话试一下123456,或者在配置文件设置一下
mysql -uroot -p 密码
#给远程连接的计算机授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
#如下所示:
#mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT #OPTION;
#Query OK, 0 rows affected, 1 warning (0.00 sec)
#刷新配置信息,退出mysql服务,重启mysql服务就完成了
flush privileges;
exit;
service mysql restart

配置文件更改如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QI2Qu0fS-1621592819903)(%20Linux%E5%91%BD%E4%BB%A4%E8%AF%BE%E5%A0%82/img/image-20210519200938581.png)]

Ubuntu虚拟机下载安装 Tomcat

2021年5月20日08:34:44

#切换root提权,更新软件列表及安装包
$su root
$apt-get update
$apt-get disk-upgrade

#下载安装tomcat8
$apt-get install tomcat8

#检查是否安装?看一下tomcat目录在哪
$whereis tomcat8
#输出信息为:tomcat8: /etc/tomcat8 /usr/share/tomcat8


#我们的webapps目录在 /var/lib/tomcat8下,通过ll命令查看一下,确认是否有问题!
ll /var/lib/tomcat8
#输出信息为:
#total 16
#drwxr-xr-x  4 root    root    4096 May 19 17:56 ./
#drwxr-xr-x 46 root    root    4096 May 19 17:56 ../
#lrwxrwxrwx  1 root    root      12 Aug  3  2020 conf -> /etc/tomcat8/
#drwxr-xr-x  2 tomcat8 tomcat8 4096 Aug  3  2020 lib/
#lrwxrwxrwx  1 root    root      17 Aug  3  2020 logs -> ../../log/tomcat8/
#drwxrwxr-x  3 tomcat8 tomcat8 4096 May 19 17:56 webapps/
#lrwxrwxrwx  1 root    root      19 Aug  3  2020 work -> ../../cache/tomcat8/

#安装tomcat后默认是启动了的
#主机上通过浏览器测试一下网址为 虚拟机的 ipv4:8080/
192.168.52.128:8080/
#页面展示正常说明成功了
#没成功的先检查一下防火墙,防火墙确认没问题后,试一下在虚拟机中打开8080端口

$service tomcat8 status 查看tomcat服务状态

$service tomcat8 start 启动tomcat服务

$service tomcat8 stop 停止tomcat服务

$vim /etc/tomcat8/tomcat-users.xml
#注册用户权限如下;
#







#编辑完成用户名和密码后,重启一下tomcat服务
$service tomcat8 restart

#再次进入http://192.168.52.128:8080/manager/html  输入用户密码,成功进入管理页面!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QDSs0QwB-1621592819905)(%20Linux%E5%91%BD%E4%BB%A4%E8%AF%BE%E5%A0%82/img/image-20210520090954762.png)]

配置 /etc/tomcat8/tomcat-users.xml 如图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ezf5vuIk-1621592819907)(%20Linux%E5%91%BD%E4%BB%A4%E8%AF%BE%E5%A0%82/img/image-20210520102635128.png)]

编辑完成后重启tomcat服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EViEp6ja-1621592819907)(%20Linux%E5%91%BD%E4%BB%A4%E8%AF%BE%E5%A0%82/img/image-20210520095601492.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ChI8Renv-1621592819908)(%20Linux%E5%91%BD%E4%BB%A4%E8%AF%BE%E5%A0%82/img/image-20210520103103764.png)]

Ubuntu虚拟机安装Docker

2021年5月20日10:33:01

1.root提权,更新应用列表与软件包

$su root
$apt-get update
$apt-get upgrade

2.下载docker 完成后查看dokcer版本

#安装docker
$apt-get install docker.io
#查看版本
$docker -v 或 $docker version

3.使用docker

参考官方文档学习吧! https://docs.docker.com/engine/reference/run/

参考菜鸟教程学习吧! https://www.runoob.com/docker/docker-hello-world.html

#查看帮助信息
$docker help

$docker login #登录自己的docker账户

#菜鸟教程学习 https://www.runoob.com/docker/docker-hello-world.html
$docker run ubuntu:15.10 /bin/echo "Hello world"
Unable to find image 'ubuntu:15.10' locally
15.10: Pulling from library/ubuntu
7dcf5a444392: Pull complete 
759aa75f3cee: Pull complete 
3fa871dc8a2b: Pull complete 
224c42ae46e7: Pull complete 
Digest: sha256:02521a2d079595241c6793b2044f02eecf294034f31d6e235ac4b2b54ffc41f3
Status: Downloaded newer image for ubuntu:15.10
Hello world

Ubuntu虚拟机中Docker安装其它应用

  1. 下载具体的镜像到本地 pull
  2. 通过镜像创建并运行一个容器 run : 其实直接run也会把最新的应用容器pull下来
  3. 进入命令行配置 某些必要的环境
  4. 检查运行是否没有问题
#docker 安装Nginx
$sudo usermod -aG docker yugu #给用户yugu提权,不用每次sudo 来使用docker,添加一次docker组就够了
$docker search nginx		  #查询docker官方仓库中的Nginx镜像
$docker pull nginx:latest	  #下载最新版本的Nginx镜像
$docker run --name nginx-test -p 8080:80 -d nginx  #后台运行 nginx-test 容器,映射端口为 8080:8080
#主机中打开浏览器访问 虚拟机ipv4:8080 ,正常显示Nginx页面
192.168.52.128:80

#docker 安装 Tomcat
$docker search tomcat		  #查询docker官方仓库中的Tomcat镜像
$docker pull tomcat	 		 #下载最新版本的Tomcat镜像
$docker run --name tomcat-test -p 8080:8080 -d tomcat

#同样主机中打开浏览器访问 192.168.52.128:80 (即虚拟机ipv4:8080) ,发现报错404;
#这是正常现象,阿里云下载下来的tomcat是阉割过的,webapps目录下没有任何文件,我们自然什么访问不到页面的,
#页面和项目文件都在webapps.dist中,我们接下来进入tomcat容器中的命令行中,把复制一份到webapps中
$docker exec tomcat-test -it /bin/bash 
$ls webapps.dist	ls webapps  #检查一下,文件是否如我们所预料的一样!
$copy -r webapps.dist/* webapps 
#再次在主机访问 192.168.52.168:80 ,就出现汤姆猫了!

#docker 安装node
$docker pull node:latest      			#下载node镜像到本地
$docker run -itd --name node-test node	#开启一个node容器
$docker exec -it node-test /bin/bash	#进入容器命令行
$node -v								#检查node版本

#安装 redis  1.安装并启动,进入交互式命令行,测试是否正常
$docker run -itd --name redis-test -p 6379:6379 redis
$docker exec -it redis-test /bin/bash

#虚拟机中测试
root@c9d54c7fa5f9:/data# redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> set test helloworld!
OK
127.0.0.1:6379> get test
"helloworld!"
127.0.0.1:6379>
#主机中cmd命令行测试
C:\Users\zhou1>redis-cli -h 192.168.52.128 -p 6379
192.168.52.128:6379>
192.168.52.128:6379> get test
"helloworld!"
192.168.52.128:6379>

#安装 apche
$docker run --name apache-test -p 80:80 -id httpd #运行 httpd的容器,没有镜像自动下载

主机中打开浏览器访问 虚拟机ipv4:80  192.168.52.128:80

-r webapps.dist/* webapps
#再次在主机访问 192.168.52.168:80 ,就出现汤姆猫了!

#docker 安装node
$docker pull node:latest #下载node镜像到本地
$docker run -itd --name node-test node #开启一个node容器
$docker exec -it node-test /bin/bash #进入容器命令行
$node -v #检查node版本

#安装 redis 1.安装并启动,进入交互式命令行,测试是否正常
$docker run -itd --name redis-test -p 6379:6379 redis
$docker exec -it redis-test /bin/bash

#虚拟机中测试
root@c9d54c7fa5f9:/data# redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set test helloworld!
OK
127.0.0.1:6379> get test
“helloworld!”
127.0.0.1:6379>
#主机中cmd命令行测试
C:\Users\zhou1>redis-cli -h 192.168.52.128 -p 6379
192.168.52.128:6379>
192.168.52.128:6379> get test
“helloworld!”
192.168.52.128:6379>

#安装 apche
$docker run --name apache-test -p 80:80 -id httpd #运行 httpd的容器,没有镜像自动下载

主机中打开浏览器访问 虚拟机ipv4:80 192.168.52.128:80




你可能感兴趣的:(Linux,linux,docker,ubuntu)