创建目录
mkdir xxx 创建目录
mkdir -p x/y/z 创建多级目录
创建文件
touch xxx 创建文件
vim xxx 创建文件并编辑
rmdir xxx 删除空目录
rm xxx 删除子目录或文件
rm -r xxx 会询问,递归删除,可以删除子目录
rm -rvf xxx 不会询问,显示已删除信息
rm -rf xxx 不会询问,不显示已删除信息
复制
cp xxx(被复制文件) xxx(复制到某个位置) 拷贝文件
cp -rv xxx xxx 连同子目录一起拷贝,并显示信息
重命名
mv xxx(源文件名) xxx(新文件名) 重命名
mv xxx /目录名 移动xxx文件到某个位置(如果只有一个目录不用加 / )
查看文件
cat xxx 查看文件,一般查看较小的文件
more xxx 查看文件,一般查看较大的文件 //回车 和 空格 (显示百分比)
less xxx 和more类似,操作键不同 // 上下键(显示底行命令,q直接退出)
tail xxx 从尾部开始查看
tail -N xxx 从尾部查看N行
tail -f xxx 跟随查看,一般用于查看日志( 可以通过echo命令进行测试:echo 内容 >> 文件 )
查找文件
find 查找文件或目录
如果没有指定搜索路径,默认从当前目录查找
-name 按名称查找,精准查找
-iname 按名称查找,忽略大小写
*:匹配所有
?:匹配单个字符
比如find /etc -name “init???”在目录/etc中查找以init开头的,且后面有三位的文件
压/解文件
tar -zcvf xx.tar.gz xxx.txt 压缩文件
-z 使用gzip压缩
-c 创建压缩文件
-x 解开压缩文件
-v 显示文件信息
-f 指定压缩后的文件名
-C /路径名:表示将压缩包解压到指定路径
tar -zxvf xxx.tar.gz 解压缩
查看进程
ps -aux 查看系统中的进程信息
-a 显示所有进程信息
-u 以用户格式显示进程信息
-x 显示后台进程运行参数
ps -aux|grep xxx 筛选进程
ps -ef 以全格式显示当前所有进程
杀进程
kill pid 通过进程pid杀死当前进程
kill -9 pid 强行杀死进程(常用)
例如:在vm上的虚拟机桌面上右键打开终端,然后在Xshell上找到 bash 对应的进程pid
启动服务
systemctl start 服务名(xxx.service) 启动该服务
systemctl restart 服务名(xxx.service) 重启该服务
systemctl stop 服务名(xxx.service) 停止该服务
systemctl status 服务名(xxx.service) 查看该服务
例如:
systemctl status firewalld.service 查看防火墙
systemctl stop firewalld.service 关闭防火墙
因为防火墙会随着虚拟机开机自动运行,避免麻烦,我们可以永久关闭防火墙
[root@localhost 桌面]# systemctl list-unit-files |grep firewalld 找到防火墙
[root@localhost 桌面]# systemctl disable firewalld.service 关闭防火墙
查看端口
netstat -anp |grep 8080 查看8080端口是否被占用
新增用户
useradd xxx(用户名) 新增用户(创建成功后会在home目录下创建对应文件夹)
passwd xxx(用户名) 设置该用户密码
su - xxx(用户名) 切换至该用户
whoami/who am i 查看当前用户
id xxx(用户名) 查看当前用户
userdel [-r] xxx(用户名) 删除用户,-r表示删除该用户的home目录
新增组
groupadd xxx(组名) 新增用户组
usermod -g xxx(组名) yyy(用户名) 修改用户的用户组
useradd -g xxx(组名) yyy(用户名) 新增用户时直接添加组
groups xxx(用户名) 查看当前用户所在的组
cat /etc/passwd 可以查看系统中的所有用户
cat /etc/shadow 可以查看系统中的所有用户的密码
cat /etc/group 可以查看系统中的所有用户组
chmod u=rwx,g=rw,o=r a.txt 或者 chmod 764 a.txt(常用)
docker
启动docker
systemctl start docker
注:关闭防火墙之后docker需要重启
service docker restart
查看本地全部镜像
docker rmi 镜像的标识(需要先删除该镜像创建的容器)
镜像的导入导出
# 将本地的镜像导出
docker save -o 导出的路径 镜像id
# 导出到当前路径,镜像命名为:mytomcat
[root@localhost ~]# docker save -o ./mytomcat b8dfe9ade316
# 加载本地的镜像文件
docker load -i 镜像文件
[root@localhost ~]# docker load -i mytomcat
# 修改镜像名称
docker tag 镜像id 新镜像名称:版本
[root@localhost ~]# docker tag b8dfe9ade316 tomcat:8.5
运行容器
# 简单操作
docker run 镜像的标识|镜像名称[:tag]
# 常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
# -d:代表后台运行容器
# -p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
# --name 容器名称:指定容器的名称(自定义)
[root@localhost ~]# docker run -d -p 8888:8080 --name mytomcat8.5 b8dfe9ade316
# 测试:浏览器访问 虚拟机ip:8888
查看正在运行的容器
docker ps [-qa]
# -a:查看全部的容器,包括没有运行
# -q:只查看容器的标识
[root@localhost ~]# docker ps
查看容器日志
docker logs -f 容器id
# -f:可以滚动查看日志的最后几行
[root@localhost ~]# docker logs -f 4411f56f1fbb
进入容器内容部
docker exec -it 容器id bash
[root@localhost ~]# docker exec -it 4411f56f1fbb bash
# 退出当前容器 exit
root@4411f56f1fbb:/usr/local/tomcat# exit
复制内容到容器
docker cp 文件名称 容器id:容器内部路径
# 把主机root目录下的a.txt文件拷贝到容器的temp目录下(由于tomcat默认路径在/usr/local/tomcat)
[root@localhost ~]# docker cp /root/a.txt 441:/usr/local/tomcat/temp
# 把容器的temp目录下的a.txt拷贝到主机root目录下
[root@localhost ~]# docker cp 441:/usr/local/tomcat/temp/a.txt /root
重启&启动&停止&删除容器
# 重新启动容器
[root@localhost ~]# docker restart 容器id
# 启动停止运行的容器
[root@localhost ~]# docker start 容器id
# 停止指定的容器(删除容器前,需要先停止容器)
[root@localhost ~]# docker stop 容器id
# 停止全部容器
[root@localhost ~]# docker stop $(docker ps -qa)
# 删除指定容器
[root@localhost ~]# docker rm 容器id
# 删除全部容器
[root@localhost ~]# docker rm $(docker ps -qa)
Docker安装Tomcat/MySQL
# 运行Tomcat容器
[root@localhost ~]# docker run -d -p 8080:8080 --name mytomcat b8dfe9ade316
# 拉取MySql镜像
[root@localhost ~]# docker pull daocloud.io/library/mysql:5.7.4
# 运行MySql容器
[root@localhost ~]# docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
创建数据卷
docker volume create 数据卷名称
#创建一个名为tomcat的数据卷
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume create tomcat
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /var/lib/docker/volumes
查看数据卷详情
docker volume inspect 数据卷名称
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume inspect tomcat
docker volume ls
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume ls
删除数据卷
docker volume rm 数据卷名称
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume rm tomcat
容器映射数据卷
映射有两种方式:
- 第一种:通过数据卷名称映射,如果数据卷不存在。Docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中。
- 第二种:通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的。
# 第一种:通过数据卷名称映射
docker run -v 数据卷名称:容器内部的路径 镜像id
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume create mytomcat_volume
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker run -d -p 8080:8080 --name mytomcat -v mytomcat_volume:/usr/local/tomcat/webapps b8
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /var/lib/docker/volumes
[root@iz8vbdmrir2n6xqzrbd93hz volumes]# ls
3fdc377f615693578180d1e7433d30e42baa53058eb55ebf86b6c4d0ed27d87a metadata.db mytomcat_volume
[root@iz8vbdmrir2n6xqzrbd93hz volumes]# cd mytomcat_volume/
[root@iz8vbdmrir2n6xqzrbd93hz mytomcat_volume]# ls
_data
[root@iz8vbdmrir2n6xqzrbd93hz mytomcat_volume]# cd _data/
[root@iz8vbdmrir2n6xqzrbd93hz _data]# ls
docs examples host-manager manager ROOT
# 第二种:通过路径映射数据卷
docker run -v 路径:容器内部的路径 镜像id
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker run -d -p 8080:8080 --name mytomcat -v /opt/yangl:/usr/local/tomcat/webapps b8
f70074ae145572c85c00afa5be9c2abb938906238be1c958b51d02806975f8de
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd opt
-bash: cd: opt: No such file or directory
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /opt/yangl
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# ls
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# mkdir ROOT
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# cd ROOT/
[root@iz8vbdmrir2n6xqzrbd93hz ROOT]# vim index.html
Dockerfile自定义镜像
from: 指定当前自定义镜像依赖的环境
copy: 将相对路径下的内容复制到自定义镜像中
workdir: 声明镜像的默认工作目录
run: 执行的命令,可以编写多个
cmd: 需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)
# 制作SSM容器镜像,video-web.war要放在Dockerfile的同级目录下
# 右键创建文件,命名为:Dockerfile 该文件无后缀,然后在文件添加如下内容
from daocloud.io/library/tomcat:8.5.15-jre8
copy video-web.war /usr/local/tomcat/webapps
# 在root目录下创建一个目录,然后把Dockerfile文件和video-web.war都拷贝过来
[root@iz8vbdmrir2n6xqzrbd93hz ~]# mkdir myssm
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd myssm
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# ls
Dockerfile video-web.war
通过Dockerfile制作镜像
docker build -t 镜像名称[:tag] .
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker build -t tomcat-video:1.0 .
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker images
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker run -d -p 8081:8080 --name tomcat-video-ssm cb8
Docker-Compose
下载Docker-Compose
去github官网搜索docker-compose,下载1.24.1版本的Docker-Compose
下载路径:https://github.com/docker/compose/releases/tag/1.24.1
设置权限
需要将docker-compose-Linux-x86_64文件拷贝到/usr/local 目录下,然后设置docker-compose-Linux-x86_64文件的权限
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /usr/local
[root@iz8vbdmrir2n6xqzrbd93hz local]# ls
aegis bin docker-compose-Linux-x86_64 etc games include lib lib64 libexec sbin share src
[root@iz8vbdmrir2n6xqzrbd93hz local]# chmod 777 docker-compose-Linux-x86_64
配置环境变量
[root@iz8vbdmrir2n6xqzrbd93hz local]# vim /etc/profile
# 添加内容:export PATH=/usr/local:$PATH
[root@iz8vbdmrir2n6xqzrbd93hz local]# source /etc/profile
# source /etc/profile加载成功后,在任意目录下执行:docker-compose-Linux-x86_64 会出现以下信息
[root@iz8vbdmrir2n6xqzrbd93hz local]# docker-compose-Linux-x86_64